选择排序
基本思想
每一次从待排序的数据元素中选出最小(最大)的元素,存放在序列的起始位置,
直到待排序的数据元素全部排完。
代码实现:
void ChooseSort(int* a,int n)
{
for (int i = 0; i < n; i++)//将第i个数剔除,从i+1开始选择排序。
{
for (int j = i; j < n; j++)
{
if (a[i] > a[j])//选择出最小的数,放在a[i]处。
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
主函数
int main()
{
int a[] = { 9,8,7,6,5,4,2,3,1};
int n = sizeof(a) / sizeof(a[0]);
ChooseSort(a, n);
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
system("pause");
return 0;
}
直接插入排序特点
1.越接近有序,效率越高
2.空间复杂度:O(n²)
3.空间复杂度:O(1)
4,稳定性:稳定