java基本排序之簡單選擇排序

簡單選擇排序就是通過n-i次關鍵字間的比較,從n-i+1個記錄中選出關鍵字最小的記錄,並和第i(1<=i<=n)個記錄交換。通俗來講就是在排序的時候找到合適的關鍵字再做交換,並且只移動一次就完成相應關鍵字的排序定位工作。

複雜度分析
- 最大的特點就是交換移動數據次數相當少,這樣就節約了相應的時間。無論最好最差的情況,其比較次數都是一樣的多,第i趟排序需要進行n-i次關鍵字的比較,比較需要n(n-1)/2次。最終排序時間是比較與交換的次數的總和,總的時間複雜度爲O(n2)。
- 儘管與冒泡排序同爲O(n2),但是選擇排序的性能還是略優於冒泡排序。

public void SelectSort(int[] array) {
    int min;
    for (int i = 0; i < array.length; i++) {
        min = i; //當前下標定義爲最小下標
        for (int j = i + 1; j < array.length; j++) {
            if (array[min] > array[j]) //查找是否有比當前數據小的元素
                min = j; //將下標賦給min
        }
    if (i != min) //如果min!=i,說明找到最小值,交換
        swap(array, i, min); //交換兩個值
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章