用JAVA實現排序算法之三:直接選擇排序

    本篇文章介紹直接選擇排序算法的JAVA實現。

    直接選擇排序算法的基本思想是:n個記錄的文件的直接選擇排序可經過n-1趟直接選擇排序得到有序結果:

        ①初始狀態:無序區爲R[1..n],有序區爲空。

        ②第1趟排序

        在無序區R[1..n]中選出關鍵字最小的記錄R[k],將它與無序區的第1個記錄R[1]交換,使R[1..1]和R[2..n]分別變爲記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。

        ……

        ③第i趟排序

        第i趟排序開始時,當前有序區和無序區分別爲R[1..i-1]和R[i..n](1≤i≤n-1)。該趟排序從當前無序區中選出關鍵字最小的記錄R[k],將它與無序區的第1個記錄R[i]交換,使R[1..i]和R[i+1..n]分別變爲記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。

        這樣,n個記錄的文件的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。

    以下是直接選擇排序算法的JAVA代碼實現:

package cn.simon.sort; public class SelectSort { public static <T extends Comparable<? super T>> void selectSort(T[] array) { for (int i = 0; i <= array.length - 2; i++) { int lowestIndex = i; for (int j = array.length - 1; j > i; j--) { if (array[j].compareTo(array[lowestIndex]) < 0) { lowestIndex = j; } } T temp = array[i]; array[i] = array[lowestIndex]; array[lowestIndex] = temp; } } public static void main(String[] args) { Integer[] testArray = {23, 25, 12, 42, 35}; SelectSort.selectSort(testArray); System.out.println("The result is:"); for (Integer item : testArray) { System.out.print(item); System.out.print(' '); } } } 

發佈了91 篇原創文章 · 獲贊 88 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章