选择排序算法c++c语言
时间: 2023-10-06 09:13:18 浏览: 94
一般元素的序号从开始因此程序可以变动如下-谭浩强VC++教程PPT超大版
以下是选择排序算法的 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
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 arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
cout << "Sorted array: ";
for (int i=0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
```
算法思路:
选择排序算法的基本思想是,每次从未排序部分中找到最小元素,并将其放置到已排序部分的末尾。
具体实现:
1. 遍历数组,从下标0开始,到n-1结束,其中n是数组长度。
2. 在未排序部分中找到最小元素的下标。
3. 将未排序部分最小元素和当前元素(下标为i)交换。
4. 重复步骤2-3,直到遍历完整个数组。
时间复杂度:
选择排序算法的时间复杂度为O(n^2),其中n是数组长度。虽然时间复杂度较高,但由于其实现简单,对于小规模数据的排序仍然是一种可行的选择。
阅读全文