-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path06_ShellSort.c
80 lines (80 loc) · 1.36 KB
/
06_ShellSort.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//#include<stdio.h>
//
//void ShellSort(int arr[],int nLength)
//{
// int nGap;
// int j;
// int i;
// int k;
// int temp;
// if(arr == NULL || nLength <=0)return;
//
// //定步长
// for(nGap = nLength/2;nGap >=1;nGap/=2)
// {
// //各组内插入排序
// for(i = 0;i<nGap;i++)
// {
// //插入排序
// //无序数组
// for(j = i+nGap;j<nLength;j+=nGap)
// {
// k = j-nGap;//有序数组的最后一个
// temp = arr[j];//无序数组的第一个
// while(arr[k] > temp&&k>=0)
// {
// arr[k+nGap] = arr[k];
// k-=nGap;
// }
//
// arr[k+nGap] = temp;
// }
// }
// }
//
//}
//
//void ShellSort2(int arr[],int nLength)
//{
// int nGap;
// int j;
// int k;
// int temp;
// if(arr == NULL || nLength <=0)return;
//
// //定步长
// for(nGap = nLength/2;nGap >=1;nGap/=2)
// {
// //各组内插入排序
// //插入排序
// //无序数组
// for(j = nGap;j<nLength;j++)
// {
// k = j-nGap;//有序数组的最后一个
// temp = arr[j];//无序数组的第一个
// while(arr[k] > temp&&k>=0)
// {
// arr[k+nGap] = arr[k];
// k-=nGap;
// }
//
// arr[k+nGap] = temp;
// }
// }
//
//}
//
//
//int main()
//{
// int arr[] = {10,3,16,7,29,19,8,57,100,130,160};
// int i;
//
// ShellSort2(arr,sizeof(arr)/sizeof(arr[0]));
//
// for(i = 0;i<sizeof(arr)/sizeof(arr[0]);i++)
// {
// printf("%d ",arr[i]);
// }
// return 0;
//}