1. 程式人生 > >java排序之 選擇排序

java排序之 選擇排序

基本原理:

1:給定的一組記錄,經過第一輪比較後得到最小的記錄,然後將該記錄與第一個記錄位置進行交換
2:接著對不包含的第一個記錄的以外的其他記錄進行第二輪比較,得到最小記錄並於第二個記錄進行位置交換;
3: 重複1,2 步

案例 :{38,55,69,14,25,19,45}

第一趟排序後:14 [55,69,38,25,19,45]
第二趟排序後:14 19 [69,38,25,55,45]
第三趟排序後:14 19 25[38,69,55,45]
第四趟排序後:14 19 25 38[69,55,45]
第五趟排序後:14 19 25 38 45[55,69]
第六趟排序後:14 19 25 38 45 55 [69]

最後排序
結果:14 19 25 38 45 55 69

core程式碼
.java

sort (int [] a){
   int i,j;
   int temp=0;
   int flag=0;//
 for(int i=0;i<n;i++){//從零開始掃描
   temp=a[i];//放入temp
   flag=i;//標誌
   for(int j=i+1;j<n;j++){
     if(a[j]<temp){//後續的元素中存在當前元素小的則將a[j]給temp
       temp=a[j];
       flag=j;
       }
      }
    if
(flag!=i){ //交換位置 a[flag]=a[i]; a[i]=temp; } } }

快速排序的效能 最好時間複雜度為:O(NlogN),最差複雜度為O(n^2)。為不穩定排序,當N較大時,選擇該排序方法較好。