首页 > 代码库 > 直接选择排序

直接选择排序

 

 直接选择排序

 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;
                }
               
            }
        }

 冒泡与直接选择排序比较

 其实直接选择排序很像冒泡排序法,但是它比冒泡好的地方是不用每次不停的进行冒泡,也就是数据比较交换,但是冒泡比它好的地方在于,如果已经排好序的话,就可以直接停止


 



直接选择排序