基础排序算法之-选择排序
各种老铁,晚上好,今天主要想跟大家分享一个基础的排序算法选择排序的基础思路过程。
这个排序算法的步骤主要如下:
假设有一个这样的数列 1,22,33,51,0,然后我们从小到大排序。
1:设定一个最小值,记录下这个值的下标,保存,一般默认从第一个元素开始。此时这个值就是1,下标值是0。
2:用这个值,依次与后面的值进行比较,1< 22,不做操作,1<33,不做操作,1<51不做操作,1>0 此时就要把最小值的假设修改到0这里了,也就是当前最小值是0,然后下标是4,结束本论。
3:将新找到的最小值 ,与之前设定的进行交换。在这个例子中也就是把首尾进行交换。此时,数列变为0,22,33,51,1。
4:然后再从第二个元素开始,假设当前最小值是22,下标为1。再回到1,2,3步,这样进行完后,数列也就排列完成了。
C语言代码如下:
void selectSort(int value[], int len)
{
for(int i = 0; i < len; i ++)
{
int min = i;
for(int j = i; j < len; j ++)
{
if(value[min] > value[j])
{
min = j;
}
}
int temp = value[i];
value[i] = value[min];
value[min] = temp;
}
}
int main()
{
int a[5] = {1,22,33,51,0};
selectSort(a,5);
return 0;
}