题目描述 选择排序的基本思想是:每一趟比较过程中,在n-i+1(i=1,2,...,n-1)个记录中选取关键字最小的记录作为有序序列中的第i个记录。 在多种选择排序中,最常用且形式最为简单的是简单选择排序。 简单选择排序的算法可以描述如下: 在本题中,读入一串整数,将其使用以上描述的简单选择排序的方法从小到大排序,并输出。 输入 输入的第一行包含1个正整数n,表示共有n个整数需要参与排序。其中n不超过1000。 第二行包含n个用空格隔开的正整数,表示n个需要排序的整数。 输出 只有1行,包含n个整数,表示从小到大排序完毕的所有整数。 请在每个整数后输出一个空格,并请注意行尾输出换行。 样例输入 10 2 8 4 6 1 10 7 3 5 9 样例输出 1 2 3 4 5 6 7 8 9 10
时间: 2023-06-03 22:01:31 浏览: 121
这是一个经典的排序问题,属于计算机科学领域。我可以给出以下代码实现:
```
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
void selectionSort(int arr[], int n) {
int i, j, min_idx;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
swap(&arr[min_idx], &arr[i]);
}
}
int main() {
int n, i;
scanf("%d", &n);
int arr[n];
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selectionSort(arr, n);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
注:以上代码仅供参考,实现细节可能会因语言版本不同而有所差异。
阅读全文