排序演算法(五) 簡單選擇排序

2021-07-10 01:45:53 字數 1432 閱讀 7301

當讀者聽到這個名字—簡單選擇排序,是不是就覺得很簡單呢?其實,簡單選擇排序思想也比較簡單,比上一節的快速排序可能更好理解。

基本思想:選擇排序的主要操作是選擇,其主要思想是:每趟排序在當前待排序序列中選出關鍵碼最小的記錄,新增到有序序列中。第i 趟在n-i+1(i=1,2,…,n-1)個記錄中選取關鍵碼最小的記錄作為有序序列中的第i個記錄。選擇排序的特點就是記錄移動的次數比較少。

下面來通過乙個例子簡單了解下吧。

具體實現過程:

(1)將整個序列劃分成有序區和無序區,初始化有序區為空,無序區為整個待排序列。

(2)在無序區中選取最小記錄,將它與無序區中的第乙個交換,使得有序區的記錄擴充套件了乙個,同時無序區的記錄少了乙個。

(3)重複第二步,知道無序區只剩下乙個記錄為止,此時全部記錄都為從小到大的有序序列。

/**

* 選擇排序:簡單選擇排序

*/@override

public void selectsort(t t)

}t[minindex] = t[i]; // 將最小記錄與無序區第乙個交換

t[i] = min;

} system.out.println("簡單選擇排序:");

print(t);

}

上面的compare 、 print 方法將在講解完全部排序介紹,這裡仍然才用泛型。

效能分析:

(1)可以看出,簡單選擇排序記錄的移動次數較少,待排序列為正序時,移動次數最少,為0次;待排序列為逆序時,移動次數最多,為3(n-1)次。

(2)無論記錄的初始序列如何,關鍵碼的比較次數相同,第i趟排序需要進行n-i 次比較,而又要需要n次排序,所以總的比較次數為o(n*n)

(3)所以簡單選擇排序,最好、最壞的時間效能為o(n*n)

穩定性:

若兩個記錄a和b值相等,但是排序後a、b的先後次序保持不變,則這種排序是穩定的,否則就是不穩定。簡單選擇排序是一種不穩定的排序演算法。

排序演算法(五) 簡單選擇排序

一 什麼是選擇類排序?顧名思義,選擇類排序的核心就是 選擇 為什麼選擇呢?怎麼樣選擇呢?選擇類排序的基本思路就是 在待排序序列中選擇乙個最小 最大 的元素出來,並將之放到合適的位置上,最終將待排序序列變成乙個有序的序列。二 有哪些選擇類的排序演算法?根據選擇元素的方式不同,我們討論兩種選擇類排序演算...

排序演算法 選擇排序 簡單選擇排序

package 選擇排序 簡單選擇排序 不穩定 基本思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。public class 簡單選擇排序 system.out.println 排序之前 f...

排序演算法 簡單選擇排序

簡單選擇排序是一種選擇排序。1.簡單選擇排序的定義 每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。2.簡單選擇排序的流程 例項 注 紅色數字是位置發生變化的數值。3.簡單選擇排序的 實現 public class selectsort 若min有變化,...