希尔排序

来源:互联网 发布:二手手机平台 知乎 编辑:程序博客网 时间:2024/06/08 08:29
#include <iostream>using namespace std;void shell_sort(int *A, int length){int gap;int i; //小组int j;//插入排序int k;int temp;//保存无序数组的第一个if (A == NULL || length <= 0)return;//定步长for (gap = length / 2; gap >0; gap /= 2){//按照步长分组for (i = 0; i<gap; i++){//各组内部插入排序for (j = i + gap; j<length; j += gap){k = j - gap; //有序数组的最后一个temp = A[j]; //无序数组的第一个while (A[k] > temp && k >= i){A[k + gap] = A[k];k -= gap;}A[k + gap] = temp;}}}}int main(){int a[10] = { 22,43,43,3,4,55,23,44,56,87};shell_sort(a,10);for (int i = 0; i < 10; i++){cout << a[i] << ",";}cout << endl;system("pause");return 0;}

原创粉丝点击