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<array.length;i++){
    int temp=array[i];
    position=i;
    int j=i+1;
    for (;j<array.length;j++){
    if (array[j]<temp){
    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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容