写一段c++选择排序代码
时间: 2023-08-24 08:13:48 浏览: 115
### 回答1:
下面是一段选择排序代码:
```
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, minIndex, temp;
for (i = 0; i < n-1; i++) {
minIndex = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
printf("Sorted array: \n");
for (int i=0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该代码使用选择排序算法对数组中的元素进行排序,最后输出排序后的数组。
### 回答2:
当给定一个数组时,选择排序是一种简单且直观的排序算法。它的基本思想是每次从未排序的部分选择最小(或最大)的元素,然后将其放在已排序部分的末尾。以下是一段用C语言编写的选择排序代码示例:
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, minIndex, temp;
for (i = 0; i < n-1; i++) {
minIndex = i; // 将当前下标设为最小值下标
for (j = i+1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j; // 更新最小值下标
}
}
// 将找到的最小值与当前位置进行交换
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
在上述代码中,selectionSort()函数用于实现选择排序算法。它使用了两个嵌套的循环来遍历和比较未排序部分的元素,以找到最小的值的下标。然后,将找到的最小值与当前位置进行交换,将其放在已排序部分的末尾。main()函数中定义了一个待排序的数组,并计算数组的大小。然后,调用selectionSort()函数进行排序,并打印排序后的数组。
### 回答3:
当要对一个数组进行升序排列时,常用的一种排序算法是选择排序(Selection Sort)。选择排序的基本思想是,每次从未排序的部分中选择最小的元素,然后将其与未排序部分的第一个元素进行交换,这样就将最小的元素放到了已排序部分的末尾,然后再在剩下的未排序部分中选择最小的元素,重复这个过程,直到整个数组都排序完成。
下面是C语言中选择排序的代码实现:
```
#include <stdio.h>
void selectionSort(int arr[], int n)
{
int i, j, minIndex, temp;
for (i = 0; i < n - 1; i++) {
minIndex = i;
// 在未排序部分中查找最小元素的索引
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex])
minIndex = j;
}
// 将最小元素与未排序部分的第一个元素交换
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
int main()
{
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
selectionSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在上述代码中,首先定义了一个`selectionSort`函数,用于实现选择排序。参数`arr`表示待排序的数组,`n`表示数组的大小。在函数内部,通过两层循环,每次找出未排序部分中的最小元素,并将其与未排序部分的第一个元素交换位置,从而实现排序。然后在`main`函数中,定义了一个待排序的数组`arr`,通过求得数组长度并传入`selectionSort`函数,最后输出排序后的数组。
运行该程序,输出结果为:11 12 22 25 64,即为升序排列后的数组。
阅读全文