C语言版-希尔排序算法

Posted Dog软件工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言版-希尔排序算法相关的知识,希望对你有一定的参考价值。

#include<string.h>#include<stdlib.h>#include<stdio.h>
//打印void Print(int *array,int size);//希尔排序void ShellSort(int *array, int size);

//打印void Print(int *array, int size){ int i = 0; for (i = 0; i < size; i++) { printf("%d ", array[i]); } printf("\n");}//希尔排序void ShellSort(int *array, int size){ int gap = 3; int i = 0; //记录排序次数 int j = 1; //要插入的位置的前一个位置 int pos = 0; int k = 0; while (gap) { for (i = 0; i < size; i++) { //记录要存入的元素 k = array[i + gap]; //下标超过数组的范围返回 if (i + gap >= size) { break; } //从被插入的元素的前gap个元素开始比较 //pos = i + gap -gap pos = i; while (k < array[pos] && pos>=0) { //元素后移 array[pos + gap] = array[pos]; //下标 pos = pos - gap; } array[pos + gap] = k; } printf("第%d次排序后:",j++); Print(array, size); gap--; }}


以上是关于C语言版-希尔排序算法的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序ShellSort算法详解Java/Go/Python/JS/C不同语言实现

C语言程序设计C语言希尔排序算法!

C语言希尔排序算法

八大排序算法C语言过程图解+代码实现(插入,希尔,选择,堆排,冒泡,快排,归并,计数)

希尔排序算法(缩小增量排序)及C语言实现

C语言试题171之实现希尔排序算法