排序算法之選擇排序

選擇排序

 

1.選擇排序算法的原理

a) 第一輪,設第一個位置爲起始位置,將每一次將無序序列中最小的元素移動到最起始的位置

b) 第二輪,設置第二個位置爲起始位置,將第二個後面的無序序列中最小的元素移動到第二輪的起始位置;重複以上操作,直到排序完成

2.實現代碼

#include <stdio.h>
 
int select_sort(int *a,int n)
{
        int i,j,temp,min;
        for(i=0;i<n;i++){   
                min=i; //先假設第i個位置爲這一輪的最小值a[min]
                for(j=i+1;j<n;j++){ 
//從第i+1個位置開始的每個值與a[min]比大小,找到無序區最小的那個數,並將序號記錄下來即a[min],然後交換a[i]與a[min].
                        if(a[min]>a[j]){
                                min=j;
                        }
  }
                  if(min!=i){
                          temp=a[min];
                          a[min]=a[i];
                          a[i]=temp;
                   } 
        } 
        return 0;
}
int main()
{   
        int i;
        int a[9]={14,2,6,7,1,3,5,1,7};
 
        select_sort(a,9);
        for(i=0;i<9;i++){
                printf("%d\n",a[i]);
        }
        return 0;
 
}


3.時間複雜度(O(N^2)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章