美文网首页
插入排序/希尔排序

插入排序/希尔排序

作者: Rui哥 | 来源:发表于2023-05-14 22:42 被阅读0次

插入排序

插入排序的间隔gap=1

void insertSort(){
  
int arr[] = {9,8,7,6,5,4,3,2,1,0};
int len = 0;

for(int i=1; i < len; i++){
  int p = i;
  int value = arr[p];
  
 while(p>=1 && arr[p-1] > value ){
    arr[p] = arr[p-1];
    p = p - 1;
  }
  arr[p] = value;
}

for(int i = 0; i < len; i++){
  printf("%d, ", arr[i]);
 }
 printf("\n");
}

希尔排序

希尔排序就是在插入排序的基础上增加插入间隔, 间隔gap的初始值为 len/2, 每轮缩减 1/2, 直至 gap缩减到1, 退化为插入排序


其实就是把插入排序的1改为gap即可
void insertSort(){
  
int arr[] = {9,8,7,6,5,4,3,2,1,0};
int len = 0;

for(int gap=len/2; gap>=1; gap=gap/2){

  for(int i=gap; i < len; I++){
  int p = i;
  int value = arr[p]; 
 while(p>=gap && arr[p-gap] > value ){
    arr[p] = arr[p-gap];
    p = p - gap;
  }
  arr[p] = value;
}

}


相关文章

  • 记录几个常见的排序算法

    常见的排序有:快速排序、冒泡排序、希尔排序、选择排序、插入排序、归并排序 冒泡排序: 插入排序: 选择排序: 希尔...

  • 详解排序算法--希尔排序

    希尔排序 希尔排序的由来是根据插入排序的。读者若不了解插入排序,可以参考笔者的详解排序算法--插入排序和冒泡排序....

  • 常见的排序算法(1)

    要点 冒泡排序 选择排序 插入排序 希尔排序 1. 冒泡排序 2.选择排序 3. 插入排序 4.希尔排序

  • python实现插入排序&希尔排序

    为什么要将插入排序和希尔排序放在一起来写呢?因为插入排序和希尔排序的思路是相同的,希尔排序可以看成是插入排序的特殊...

  • 算法基础课 2.3 希尔排序

    排序: 冒泡排序 交换 选择排序 求最大 最小 插入排序 挪动数组 希尔排序 希尔排序也是一种插入排序,它是简...

  • 常用的排序算法详解:希尔排序,桶排序,选择排序,冒泡排序,快速排

    排序算法——希尔排序 希尔排序是插入排序的一种,又称"缩小增量排序”,是插入排序算法的一种更高效的改进版本。 希尔...

  • 部分简单排序

    调用测试 插入排序 二分插入排序 希尔排序 冒泡排序

  • 希尔排序思想与实现

    希尔排序是对插入排序的修改,我们知道插入排序比选择排序更优,希尔排序又是比插入排序更优的一种方式,具体原因,看完下...

  • 排序(新排版)

    冒泡排序 插入排序 二分插入排序 希尔排序 选择排序 快速排序

  • 算法(排序)

    一、内部排序 1、插入排序—直接插入排序(Straight Insertion Sort) 2、插入排序—希尔排序...

网友评论

      本文标题:插入排序/希尔排序

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