常用排序算法(一)插入排序、希尔排序、冒泡排序
常用排序算法(三)归并排序、堆排序、基数排序
1 选择排序
选择排序也是一种简单直观的排序算法。它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法平均时间复杂度O(n2)。
一种用C++实现的选择排序算法如下:
void SelectSort(int a[], int n)
{
for (int i = 0; i < n - 1 ; i++)
{
for (int j = i + 1 ; j < n; j++)
{
if (a[j] < a[i])
{
int min = a[j];
a[j] = a[i];
a[i] = min;
}
}
}
}
上面示例代码中,第二层循环需要找出从下标 i 开始的最小值,对于每一个比a[i]小的值a[j]都进行交换,下