C++ 实现希尔排序:展示数组排序每一趟详细过程
以下是一个使用希尔排序对数组进行排序并显示每一趟排序过程的 C++ 代码示例: ```cpp #include <iostream> using namespace std; #include <stdlib.h> #include <time.h> const int n = 10; const int min = 10; const int max = 99; int getrand(int min, int max) { return (rand() % (max - min + 1) + min); } void set(int r[], int n) { int i; for (i = 0; i < n; i++) r[i] = getrand(min, max); } void show(int r[], int n) { int i; for (i = 0; i < n; i++) cout << r[i] << " "; cout << endl; } void shellsort(int r[], int n) { int gap, i, j, temp; for (gap = n / 2; gap > 0; gap /= 2) { for (i = gap; i < n; i++) { temp = r[i]; for (j = i; j >= gap && r[j - gap] > temp; j -= gap) { r[j] = r[j - gap]; } r[j] = temp; // 显示每一趟排序后的结果 cout << "第 " << gap << " 趟排序: "; show(r, n); } } } int main() { srand(time(0)); int a[n]; set(a, n); cout << "原序列: "; show(a, n); cout << "新序列: \n"; shellsort(a, n); return 0; } ``` 希尔排序通过不断缩小间隔来对数组进行排序,每完成一趟排序,就显示当前的数组状态。 ######[AI写代码神器 | 448点数解答 | 2024-10-31 11:07:15]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- iOS开发:用Swift实现高效希尔(Shell)排序算法(百度文心 | 502点数解答 | 2023-11-09 17:45:42)219
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)240
- Python 实现:四位数重组求最大最小数差值(字节豆包 | 144点数解答 | 2026-02-01 12:49:54)25
- Python 代码求解:小明当选 Y 国总统至少需多少选民支持?(字节豆包 | 207点数解答 | 2026-02-01 12:51:14)33
- 拍卖干草:如何定价才能收益最大化?(DeepSeek | 1171点数解答 | 2026-02-23 21:10:09)19
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)13
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- C++开发:揭秘从输入网址到显示网页背后的网络爬虫实现及要点(阿里通义 | 280点数解答 | 2023-11-09 00:46:44)246
- 深度剖析:JavaScript 开发中 React Diff 过程全揭秘(阿里通义 | 203点数解答 | 2023-11-09 01:38:53)373
- 工程师必知:LoadRunner性能测试全流程揭秘!(百度文心 | 279点数解答 | 2023-11-09 18:27:50)267
- 全面揭秘SEI软件性能过程:从需求到维护的性能保障之道(百度文心 | 392点数解答 | 2023-11-09 18:29:40)350