簡單選擇排序算法
選擇排序(Selection Sort)的基本思想:對 n 個記錄進行掃描,選擇最小的記錄,將其輸出,接著在剩下的 n-1 個記錄中掃描,選擇最小的記錄將其輸出,……,不斷重復這個過程,直到只剩一個記錄為止。如果要求數據按照從大到小排序,則每次掃描時選擇最大的記錄即可。選擇排序通常分為兩種:簡單選擇排序和堆排序。本文介紹簡單選擇排序算法。假設有8個需要排序的數據序列如下:69,65,90,37,92,6,28,54。則其排序過程如下圖所示。

public class SelectSort
{
public void SelectSorter(int [] a)
{
int i , j , k , t;
int n = a.length;
for(i = 0 ; i < n-1 ; i ++)
{
k = i;
for(j = i +1 ; j < n ; j ++){
if(a[k] > a[j])
k = j;
}
t = a[i];
a[i] = a[k];
a[k] = t;
//掃描次數
System.out.print("第" + (i+1)+"遍: ");
for(j = 0 ; j < n ; j ++)
{
System.out.print(a[j] + ",");
}
System.out.print("\n");
}
}
public static void main(String[] args)
{
int [] b = { 69,65,90,37,92,6,28,54};
SelectSort ss = new SelectSort();
ss.SelectSorter(b);
}
}</pre>測試結果如下所示:

</div>
</div>
本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!