排序算法--直接插入排序

2018-08-23  本文已影响0人  荆辰曦
算法思想:

直接插入排序的基本思想是每一步将右边一个待排序的记录,插入到左边已经排好序的有序序列中去,直到插完数组中的所有元素为止。
上图:


1024555-20161126000335346-416319390.png

代码实现

public class Insertion{
  //插入排序
  public static void sort(int[] arr){
   for(int i = 0;i<arr.length;i++){
         //最坏的比较次数:1+2+3+...+(N-1)=(N-1+1)*(N-1)/2=N*(N-1)/2 约为N^2/2
          //最好的比较次数为N-1次
          //平均比较次数约为N^2/4
          for(int j = i;j>0 && arr[j]<arr[j-1];j--){
          swap(arr,j.j-1)
          }
    }
 }

   
//交换指定元素
  public static void swap(int[] arr,int i,int j){
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
  }


}
上一篇 下一篇

猜你喜欢

热点阅读