/*选择排序*/
//就是在一个数组中所有数中,选择一个最小的和前面的那个数交换。
#include<stdio.h>
void SelectSort(int k[], int n)
{
int i, j, temp, min;
for(i =0 ; i<n-1;i++)
{
min = i;
for(j = i+1; j<n; j++)
{
if(k[j]<k[min])
{
min = j;
}
}
if(min != i)
{
temp = k[i];
k[i] = k[min];
k[min] = temp;
}
}
}
int main()
{
int i,a[10] = {5,6,2,3,7,9,4,1,3,1};
SelectSort(a,10);
printf("排序后的结果是:");
for(i = 0; i<10; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
选择排序怎么画呢?
选择排序就是选择出最小或者最大的数,放到表头。
选择排序的空间复杂度是O(1)
时间复杂度是O(n^2)
堆其实是高级一点的选择排序