文章目录
- 1. 排序几个重点概念的理解
- 2. 排序算法的分析🐧
- 3.直接选择排序
1. 排序几个重点概念的理解

2. 排序算法的分析🐧


3.直接选择排序
- 🐧 begin 有可能就是 maxi ,所以交换的时候,要及时更新 maxi


- 🍎 直接选择排序是不稳定的,例如:
9 [9] 5 [5]
,排序后,因为直接选择排序是会交换数据的,排序后可能变成了 [5] 5 [9] 9
void SelectSort(int* a, int n)
{
int begin = 0, end = n - 1;
while (begin < end)
{
int mini = begin, maxi = begin;
for (int i = begin; i <= end; i++)
{
if (a[i] < a[mini])
mini = i;
if (a[i] > a[maxi])
maxi = i;
}
Swap(&a[begin], &a[mini]);
if (begin == maxi)
maxi = mini;
Swap(&a[end], &a[maxi]);
begin++, end--;
}
}
