其他分享
首页 > 其他分享> > 插入排序和希尔排序的比较

插入排序和希尔排序的比较

作者:互联网

  希尔排序在一定程度是直接插入排序的升级,二者均需要选择一个靶向元素。直接插入比较适合一些较为有序的长度较小的序列。

直接插入排序代码实现:

  void insertsort(int arr[],int len)

{

for(p = 1;p < len;p++){

  temp = arr[p]

  for(j = p;j > 0 && arr[j-1] > temp;){

    arr[j] = arr[j-1];

    arr[j-1] = temp;

  } 

 }

}

希尔排序代码实现:

  void shellsprt(int arr[],int len)

{  

  int gra;

  for(gra = len/2;gra > 0;gra /=2){//用这个循环来控制步长

   for(k = gra;k < len;k++){

        temp = arr[j]

        for(j = k;j > 0 && arr[j -1] > temp;j -= gra){//找到与其配对的元素

          arr[j] = arr[j-1];

          arr[j-1] = temp;

      }  

    }

  }

}

在一定程度上希尔排序就是在直接插入排序的基础上加上一个步长。

标签:arr,temp,int,插入排序,len,希尔,gra,排序
来源: https://www.cnblogs.com/zoutingrong/p/12173884.html