构造数组a[10]={3,1,2,4,7,5,8,6,9,10},编程用直接选择法对其进行非递减排序
时间: 2023-09-29 14:08:24 浏览: 37
直接选择排序的基本思想是:第i趟排序从第i个元素开始,将后面n-i+1个元素中最小的元素与第i个元素交换位置,直到完成n-1趟排序为止。
以下是用C++语言实现直接选择排序的代码:
```c++
#include<iostream>
using namespace std;
void selectSort(int a[], int n) {
for (int i = 0; i < n - 1; i++) { //进行n-1趟排序
int minIndex = i;
for (int j = i + 1; j < n; j++) { //从i+1开始找最小的数
if (a[j] < a[minIndex]) {
minIndex = j; //记录最小数的下标
}
}
if (minIndex != i) { //如果最小数不是当前数,就交换它们
swap(a[i], a[minIndex]);
}
}
}
int main() {
int a[10] = {3,1,2,4,7,5,8,6,9,10};
selectSort(a, 10);
for (int i = 0; i < 10; i++) {
cout << a[i] << " ";
}
return 0;
}
```
输出结果为:1 2 3 4 5 6 7 8 9 10