使用折半插入排序,对3,1,7,5,2,4,9,6进行由大到小的排序。要求输出结果能够显示出每一轮排序的结果,用DEVC++输出代码
时间: 2025-01-01 18:36:41 浏览: 10
折半插入排序是一种改进的插入排序算法,它适用于已部分有序的数据。对于给定的数据序列3,1,7,5,2,4,9,6,我们要按照从大到小的顺序进行排序,以下是DEVC++的代码示例:
```cpp
#include <iostream>
using namespace std;
void binaryInsertionSort(int arr[], int n) {
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) { // 比较并调整元素位置
arr[j + 1] = arr[j]; // 将较大的元素向右移动
j = j - 1;
}
arr[j + 1] = key; // 插入适当的位置
cout << "After iteration " << i << ": ";
printArray(arr, i); // 输出当前排序后的数组
}
}
// 打印数组函数
void printArray(int arr[], int size) {
for (int i = 0; i <= size; ++i)
cout << arr[i] << " ";
cout << endl;
}
int main() {
int data[] = {3, 1, 7, 5, 2, 4, 9, 6};
int n = sizeof(data) / sizeof(data[0]);
cout << "Original array: ";
printArray(data, n);
binaryInsertionSort(data, n);
return 0;
}
```
当你运行这个程序,你会看到每轮排序过程中的数组变化,直到整个数组按照降序排列完成。
阅读全文