java算法学习记录之插入排序法

前面我记录了冒泡、选择排序法,其实在大数据量的排序面前,插入排序比前两则都要优秀,算法思路稍微复杂一点点而已。

import java.util.Random;

//插入排序,此方法的原理是从数组的第二个元素开始标记依次与前面的每个元素相对,找到第一个比自己的小的数,然后插入进过
//当然在找到之前这个大于当前标记的数都依次往后移一个
public class InsertSort {

    public static void main(String[] args) {
        //初始化 1到100
        int[] array = new int[50];
        for (int i = 0; i < 50; i++) {
            array[i] = new Random().nextInt(100);
        }

        sort(array,false);
    }

    public  static void sort(int[] arry,boolean isDesc){
        if(arry==null || arry.length==1){
            return;
        }

        int i,temp,j;
        for(i=1;i0 && (arry[j-1])>=temp){ //左边只要是大于当前标记的值直接右多
                arry[j] =arry[j-1];
                j--;
            }

            arry[j] = temp; //插入标记的值到应该在的位置,当前左边这一段是一个局部排序的队列
        }

        if(isDesc){
            //前后交换
            for(i=0; i

 

你可能感兴趣的:(插入排序)