直接选择排序

 A.第1趟从中找到最小的。与R0交换

 B.第2趟从剩余中找到最小的。与R1交换

........................................................


 代码例如以下

 

//直接选择排序
void Selectsort(int []a,int n)
{
//定义变量
int i, j, nMinIndex;
for(i=0;i<n;i++)
{
//最小值标志位
nMinIndex = i;
//循环找出最小值
for(j=i+1;j<n;j++)
{
//进行比較
if (a[j] < a[nMinIndex])
{
//假设小于的话,标志位改变
nMinIndex = j;

}



}
//经过上述循环后找出最小值
if(nMinIndex!=i)
{
//数值进行交换
int c = a[i];
a[i] = a[nMinIndex];
a[nMinIndex] = c;
}

}
}


 冒泡与直接选择排序比較

 事实上直接选择排序非常像冒泡排序法,可是它比冒泡好的地方是不用每次不停的进行冒泡。也就是数据比較交换。可是冒泡比它好的地方在于,假设已经排好序的话,就能够直接停止