c++选择排序算法设计升序
时间: 2024-09-20 15:12:30 浏览: 32
在 C++ 中,选择排序是一种简单直观的排序算法,它的工作原理每次从未排序的部分选取最小(或最大)的元素,放到已排序部分的末尾。这里是一个基本的选择排序算法设计,用于升序排列:
```cpp
#include <iostream>
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) { // 遍历数组直到倒数第二个元素
int minIndex = i; // 假设当前元素是最小的
for (int j = i + 1; j < n; ++j) { // 比较从当前到结尾的元素
if (arr[j] < arr[minIndex]) { // 如果找到更小的元素,更新最小索引
minIndex = j;
}
}
// 将找到的最小元素与当前位置交换
std::swap(arr[i], arr[minIndex]);
}
}
// 测试函数
int main() {
int arr[] = {9, 5, 7, 1, 6, 3};
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Original array:\n";
for (int i = 0; i < n; ++i)
std::cout << arr[i] << " ";
selectionSort(arr, n);
std::cout << "\nSorted array (ascending):\n";
for (int i = 0; i < n; ++i)
std::cout << arr[i] << " ";
return 0;
}
```
在这个例子中,`selectionSort` 函数首先遍历数组,然后内层循环查找未排序部分的最小值,最后将这个最小值放到已排序部分的开始位置。运行 `main` 函数可以看到数组是如何被按升序排列的。