编写一个希尔排序算法来对学生成绩进行排序
时间: 2023-07-01 10:25:55 浏览: 46
好的,以下是一个使用希尔排序算法对学生成绩进行排序的示例代码:
```c++
#include <iostream>
using namespace std;
void shellSort(int arr[], int n) {
// 计算出最大的h值
int h = 1;
while (h < n / 3) {
h = h * 3 + 1;
}
while (h >= 1) {
// h-sort the array
for (int i = h; i < n; i++) {
for (int j = i; j >= h && arr[j] < arr[j - h]; j -= h) {
swap(arr[j], arr[j - h]);
}
}
// 计算下一个h值
h = h / 3;
}
}
int main() {
int n;
cout << "请输入学生人数:";
cin >> n;
int scores[n];
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "位学生的成绩:";
cin >> scores[i];
}
shellSort(scores, n);
cout << "排序后的成绩为:";
for (int i = 0; i < n; i++) {
cout << scores[i] << " ";
}
return 0;
}
```
这个示例代码中,我们先输入了学生的人数和对应的成绩,然后使用了希尔排序算法对成绩进行了排序,最后输出了排序后的结果。你可以根据实际情况进行修改和调整。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)