ddu-java排序

直接插入排序

public static int[] insertSort(int[] array) {
    for (int i = 1; i < array.length; i++) {
        int temp = array[i];
        for (int j = i - 1; j >= 0 && temp < array[j]; j--) {//temp之前的值挨个比较,互换
            array[j + 1] = array[j];
            array[j] = temp;
        
        }
    }
    return array;
}
  • 结果
    3421互换一次
    3241互换一次
    2341互换一次
    2314互换一次
    2134互换一次
    1234互换一次
  • 外循环表现出来的就是插入到一个位置
  • 内循环就是用当前的temp值跟前面的数字挨个比较,符合条件进行互换。

简单选择排序 :

  • 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
    然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一
    个数比较为止。

    public static int[] insertSort(int[] array) {
    int i=0;
    int position;//最小值的位置
    for (;i int temp=array[i];
    position=i;
    int j=i+1;
    for (;j if (array[j] temp=array[j];
    position=j;
    }
    }
    array[position]=array[i];
    array[i]=temp;
    }

     return array;
    

    }
    比如 4,3,2,1; // i=0;在i后面找到一个最小值,确定位置和数值,然后跟i位置交换。
    1,3,2,4;
    1,2,3,4

你可能感兴趣的:(ddu-java排序)