7-4 选择法排序 分数 20 作者 c课程组 单位 浙江大学 本题要求将给定的n个整数从
时间: 2023-09-04 21:04:02 浏览: 187
小到大按照选择法排序。选择法排序的基本思想是将待排序的元素分为已排序和未排序两部分,每次从未排序的部分选择一个最小的元素放到已排序部分的末尾,直到所有的元素都排好序为止。
具体操作步骤如下:
1. 假设待排序的n个整数存储在数组a中,初始化已排序部分的大小为0。
2. 从数组a中找到未排序部分的最小元素,将其与未排序部分的第一个元素交换位置。
3. 将已排序部分的大小加1。
4. 如果未排序部分不为空,则重复步骤2。
5. 当未排序部分为空时,所有元素都已排好序。
根据以上步骤,可以用循环来实现选择法排序算法。
具体代码如下:
```cpp
#include <iostream>
void selectionSort(int a[], int n) {
for (int i = 0; i < n-1; i++) {
int minIndex = i;
for (int j = i+1; j < n; j++) {
if (a[j] < a[minIndex]) {
minIndex = j;
}
}
int temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
}
int main() {
int n;
std::cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++) {
std::cin >> a[i];
}
selectionSort(a, n);
for (int i = 0; i < n; i++) {
std::cout << a[i] << " ";
}
delete[] a;
return 0;
}
```
以上代码通过输入整数的个数和具体数值,使用选择法排序算法将它们从小到大排序并输出。基于此算法,我们可以将给定的n个整数从小到大按选择法排序。