简单排序--选择排序
生活随笔
收集整理的這篇文章主要介紹了
简单排序--选择排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
選擇排序:
public void sort(){int out,in,min;for(out=0;out<nElements-1;out++){min = out;for(in=out+1;in<nElements;in++)if(arr[in]<arr[min])min = in;swap(out,min);//將min放在out位置,out始終指向最小值的下一個位置,即下一個min要存放的位置 }}
選擇排序改進了冒泡排序,將必要的交換次數從O(N^2)減少到O(N),但比較次數仍然為O(N^2).
min先指向第一個元素,in指向第二個元素,先與min比較,之后不斷右移,過程中不斷更新min的最小值。第一輪比較完成后,將最小值min與out交換,這樣一輪下來比較N-1次(N為未排序個數),只交換一次。
初始狀態:
in右移,min更新:
第一輪比較結束,數組中的最小值已經排好序,outer右移到待排序的第一個:
排序完畢:
總結
以上是生活随笔為你收集整理的简单排序--选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单排序--冒泡排序
- 下一篇: 简单排序--插入排序