pta 选择排序
时间: 2023-07-01 19:15:01 浏览: 128
选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:首先在未排序的序列中找到最小元素,然后将其存放到序列的起始位置;接着,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
以下是 C++ 实现选择排序的代码:
```c++
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]);
}
}
```
其中,`arr` 是待排序数组,`n` 是数组的长度。`swap()` 函数可以用来交换两个元素的值。
选择排序的时间复杂度为 O(n^2),因此对于大规模数据排序效率较低,但对于简单的排序任务来说,是一种不错的选择。
相关问题
pta 选择排序练习
以下是一个使用选择排序算法对数组进行排序的示例代码:
```c
#include <stdio.h>
void selection_sort(int arr[], int n) {
int i, j, min_idx, temp;
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;
}
}
temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
int main() {
int n, i;
printf("请输入数组的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入数组的元素:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selection_sort(arr, n);
printf("排序后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
pta选择排序法C语言
根据提供的引用,这是一个选择排序的C语言代码示例:
```c
#include <stdio.h>
#define N 100
int main() {
int n, a[N], temp;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++) {
int max = i;
for (int j = i + 1; j < n; j++) {
if (a[max] < a[j]) {
max = j;
}
}
if (max != i) {
temp = a[i];
a[i] = a[max];
a[max] = temp;
}
}
for (int i = 0; i < n - 1; i++) {
printf("%d ", a[i]);
}
printf("%d", a[n - 1]);
return 0;
}
```
阅读全文