java排序之 選擇排序
阿新 • • 發佈:2019-02-06
基本原理:
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較大時,選擇該排序方法較好。