选择排序

2017-03-09  本文已影响0人  SDBridge

选择排序 升序

基本思想:
对于N记录的序列,让第1个记录和其余 N-1个记录进行比较,选择其中最小的数值与第1个记录交换位置,

然后 让第2个记录和其余 N-2个记录进行比较,选择其中最小的数值与第2个记录交换位置

然后 让第3个记录和其余 N-3个记录进行比较,选择其中最小的数值与第3个记录交换位置。

一直到让第N-1个记录和其余 1个记录进行比较,选择其中最小的数值与第N-1个记录交换位置

void selectSort(long a[],long n){
   
   long temp  = 0;
   
   for ( long i = 0; i< n-1; i++) {
       
       for (long j=i+1; j < n; j++) {//当i= 0是,a[0]将会与a[1]~a[n-1]进行比较
           
           if (a[j] <  a[i]) {
               
               temp =a[i];
               
               a[i] = a[j];
               
               a[j] = temp;
               
           }
       }
   }
}

最好的情况下时间复杂度O(n);
平均时间复杂度O(n^2);
最坏的情况下的时间复杂度O(n^2)

上一篇下一篇

猜你喜欢

热点阅读