一.选择排序的图解及原理
选择排序的原理:
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
通俗的讲,就是先找最小,再找次小,再找次次小…主打一个暴力排序
对于所有的排序,我们都可以先实现单趟排序,选择排序也不例外,因此我们先实现单趟循环(即先找最小的元素放在第一个位置)
我们以一个数组为例:{ 4, 3, 1, 9, 6}
选择排序简单但是低效,尽管接下来的优化能好一点点
二.选择排序的代码
void Swap(int* p1, int* p2)
{
int tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
void SelectSort(int* a, int n)
{
int i = 0;
for (i = 0; i < n - 1; i++)
{
int mini = 0; //最小元素的下标