// // sort_.cpp // Sort // // Created by ljpc on 2018/4/20. // Copyright © 2018年 ljpc. All rights reserved. // #include "sort_.h" void print_array(int *arr, int n) // 打印数组 { if(n==0){ printf("ERROR: Array length is ZERO\n"); return; } printf("%d", arr[0]); for (int i=1; i<n; i++) { printf(" %d", arr[i]); } printf("\n"); } void sort_array(int *arr, int n) // 编程实现《选择排序算法》:将乱序序列arr转化为升序序列 // 函数参数:乱序整数数组(无重复元素) 数组长度 // 要求输出:调用print_array(int *arr, int n)输出前三次选择操作后的序列,以及最终的升序序列 { // 请在这里补充代码,完成本关任务 /********** Begin *********/ /********** End **********/ }
时间: 2023-07-23 09:03:11 浏览: 229
为了实现选择排序算法,我们需要在每次遍历中找到当前未排序部分的最小元素,并将其放置在已排序部分的末尾。
下面是选择排序算法的实现代码:
```cpp
void sort_array(int *arr, int n)
{
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将最小元素与已排序部分的末尾元素交换位置
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
// 输出前三次选择操作后的序列
if (i < 3) {
print_array(arr, n);
}
}
// 输出最终的升序序列
print_array(arr, n);
}
```
你可以将这段代码添加到你的 `sort_.cpp` 文件中,然后调用 `sort_array` 函数来对数组进行排序。
阅读全文