簡單選擇排序算法

Yangcl 12年前發布 | 4K 次閱讀 AKKA


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