美文网首页
ddu-java排序

ddu-java排序

作者: 小董666 | 来源:发表于2016-07-29 16:45 被阅读0次

    直接插入排序

    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

    相关文章

      网友评论

          本文标题:ddu-java排序

          本文链接:https://www.haomeiwen.com/subject/apbbjttx.html