C:C的排序算法:希尔排序(ShellSort)
2018-03-09 14:48
489 查看
#include<stdio.h> typedef struct Array{ int key; }Array; #define LENGTH 8 void ShellSort(Array A[],int n); int main(void) { int arr[LENGTH] = {2,1,521,412,3,251,23,52}; int index = 1; Array A[LENGTH+1]; while (index<=LENGTH){ A[index].key = arr[index - 1]; printf("排序前:%d \n",A[index].key); index++; } index = 1; printf("***********************\n"); ShellSort(A,LENGTH); while (index <= LENGTH) { printf("排序前:%d \n", A[index].key); index++; } getchar(); return 0; } void ShellSort(Array A[], int n) { int dk, i, j; for (dk = n / 2; dk >= 1; dk/=2) { for (i = dk + 1; i<=n;++i){ if (A[i].key < A[i - dk].key) { A[0] = A[i]; for (j = i - dk; j > 0 && A[0].key < A[j].key; j -= dk) { A[j + dk] = A[j]; } A[j + dk] = A[0]; } } } }
相关文章推荐
- 排序算法--希尔排序(Shell Sort)_C#程序实现
- 排序算法——希尔排序(Shell Sort)
- PHP实现排序算法----希尔排序(Shell Sort)
- 排序算法-希尔排序 Shell Sort
- 常见排序算法 - 希尔排序 (Shell Sort)
- 排序算法---希尔排序(Shell Sort)
- 排序算法之希尔排序(ShellSort)
- Java排序算法--希尔排序(Shellsort)
- 【排序算法 】希尔排序 shell sort(插入类排序)
- 排序算法——希尔排序(Shell Sort)
- 排序算法之希尔排序(Shellsort)
- 希尔排序(Shell Sort)
- 希尔排序(ShellSort程序完整版)
- 常用算法——希尔排序(Shell Sort)
- 希尔排序(Shell Sort)
- 希尔排序(Shell Sort)
- ShellSort(希尔排序)
- ShellSort(希尔排序)
- 排序 —— 希尔排序(Shell sort)
- 希尔排序(ShellSort)