简单的选择排序
在计算机编程领域,干了有一段时间了,没仔细的学过算法。从今天起,系统性的补充下算法知识,记录自己算法学习的点滴。
选择排序:在一组乱序的数中, 每次都选择出最大值(最小值)。
#include<iostream>
using namespace std;
void selectSort(int a[], int n)
{
for(int i = 0; i < n; i++)
{
// 在[i,n)中选择最小的数字
int index = i;
for(int j = i + 1; j < n; j++)
{
if(a[index] > a[j])
{
index = j;
}
}
swap(a[index], a[i]);
}
}
int main()
{
int a[10] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
selectSort(a, 10);
for(int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
return 0;
}
小结:
1.选择排序是O(n2)时间复杂度的排序。
2.O(n2)时间复杂度的排序,虽然不够高效,但由于易于实现;其在简单的场景下使用,也是不错的。