直接选择排序

 

 直接选择排序

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

 冒泡与直接选择排序比較

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


 


posted @ 2017-06-29 13:18  lytwajue  阅读(134)  评论(0编辑  收藏  举报