文章目录
简单选择排序
介绍
简单选择排序。虽然它不如一些高级算法那样高效,但它的思想和实现方法对于理解排序算法的基本原理非常有帮助。
工作原理
简单选择排序的思想:从待排序的元素中选择最小的元素,然后将其与第一个元素交换位置。接着,从剩余的元素中选择最小的,与第二个元素交换位置,以此类推,直到所有元素都按照升序排列。
示例代码
#include <iostream>
using namespace std;
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
int min_index = i;
for (int j = i + 1; j < n; ++j) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// 交换最小元素与第i个元素的位置
swap(arr[i], arr[min_index]);
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "排序前的数组: ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
selectionSort(arr, n);
cout << "排序后的数组: ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
分析
简单选择排序的时间复杂度为O(n^2),其中n是要排序的元素个数。