shell排序就是先分组,分组后每组对应位置的数据一起比较大小,交换其位置,第一次分组排序结束后,将分组二分缩小,重复上述操作,最后直至分组分到以每个元素为单位,结束排序。
void ShellSort(int arr
[], int length
){
int group
, i
, j
, temp
;
for (group
= len
/ 2; group
> 0; group
/= 2){
for (i
= group;i
< length
; i
++){
for (j
= i
- group
; j
>= 0; j
-=group
){
if (arr
[j
] > arr
[j
+ group
]){
temp
= arr
[j
[;
arr
[j
] = arr
[j
+ group
];
arr
[j
+ group
] = temp
;
}
}
}
}
}
转载请注明原文地址: https://mac.8miu.com/read-515239.html