用c语言写一个基尔排序
时间: 2023-03-25 20:00:19 浏览: 58
基尔排序是一种插入排序的变体,也称为缩小增量排序。它通过将待排序的数组分割成若干个子序列,对每个子序列进行插入排序,从而实现整个序列有序。
以下是用C语言实现基尔排序的代码:
```c
void shellSort(int arr[], int n) {
int gap, i, j, temp;
for (gap = n / 2; gap > ; gap /= 2) {
for (i = gap; i < n; i++) {
temp = arr[i];
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
```
其中,arr[]为待排序的数组,n为数组的长度。首先,将数组分成若干个子序列,每个子序列的元素间隔为gap。然后,对每个子序列进行插入排序,将元素插入到已排序的子序列中。不断缩小gap的值,直到gap为1,此时整个序列已经有序。
相关问题
请预测以下14场比赛比分 1、加的夫VS雷丁 2、奥格斯VS霍芬海 3、不伦瑞VS基尔 4、帕德博VS凯泽 5、萨索洛VS那不勒 6、赫罗纳VS阿尔梅 7、欧塞尔VS里昂 8、瓦尔韦VS福图纳 9、阿尔城VS海尔蒙 10、奥斯VS埃因FC 11、赫拉克VS威廉 12、海牙VS兹沃勒 13、特尔斯VS埃青年 14、多德勒VS芬洛
预测的比分:1、加的夫3:1雷丁;2、奥格斯2:0霍芬海;3、不伦瑞1:1基尔;4、帕德博2:1凯泽;5、萨索洛2:0那不勒;6、赫罗纳3:1阿尔梅;7、欧塞尔2:1里昂;8、瓦尔韦1:0福图纳;9、阿尔城2:1海尔蒙;10、奥斯2:1埃因FC;11、赫拉克3:1威廉;12、海牙2:1兹沃勒;13、特尔斯2:1埃青年;14、多德勒3:1芬洛。
请预测以下14场比赛比分1、加的夫VS雷丁 2、奥格斯VS霍芬海3、不伦瑞VS基尔4、帕德博VS凯泽5、萨索洛VS那不勒6、赫罗纳VS阿尔梅7、欧塞尔VS里昂8、瓦尔韦VS福图纳9、阿尔城VS海尔蒙10、奥斯VS埃因FC11、赫拉克VS威廉12、海牙VS兹沃勒13、特尔斯VS埃青年14、多德勒VS芬洛
答:1、加的夫1-1雷丁 2、奥格斯2-1霍芬海3、不伦瑞1-2基尔4、帕德博3-0凯泽5、萨索洛1-0那不勒6、赫罗纳1-1阿尔梅7、欧塞尔2-1里昂8、瓦尔韦2-0福图纳9、阿尔城1-2海尔蒙10、奥斯3-0埃因FC11、赫拉克2-0威廉12、海牙3-1兹沃勒13、特尔斯2-2埃青年14、多德勒1-1芬洛