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

2021-08-10 23:33:00 字數 1393 閱讀 5921

一、什麼是選擇類排序?

顧名思義,選擇類排序的核心就是「選擇」,為什麼選擇呢?怎麼樣選擇呢?

選擇類排序的基本思路就是:

在待排序序列中選擇乙個最小(最大)的元素出來,並將之放到合適的位置上,最終將待排序序列變成乙個有序的序列。

二、有哪些選擇類的排序演算法?

根據選擇元素的方式不同,我們討論兩種選擇類排序演算法:簡單選擇排序

堆排序。其中簡單選擇排序是通過遍歷待排序元素來選擇得到乙個待排元素,而堆排序是通過大根堆或小根堆堆出乙個待排元素,兩者效率差距較大。簡單來說,堆排序比簡單選擇排序效率更高一些。但堆排序也比簡單選擇排序演算法實現更複雜,本節只介紹簡單選擇排序,下節來說說堆排序!

三、理解簡單選擇排序:

四、源**實現:

/*

**功能: 簡單選擇排序法公升序排序乙個序列

**引數說明:

**@record : 序列陣列 @len : 序列長度

**返回值: 無

*/void selectsort(int record, int len)

} //如果找到的最小元素下標與i(待排位置下標)不相同,則執行交換。否則不用交換

if (index != i)

}}int main(void)

; int len = sizeof(record) / sizeof(record[0]);

int i = 0;

printf("排序前: \n");

for (i = 0;i < len;i++)

puts("");

selectsort(record, len);

printf("排序後: \n");

for (i = 0;i < len;i++)

puts("");

return 0;

}

執行截圖:

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

當讀者聽到這個名字 簡單選擇排序,是不是就覺得很簡單呢?其實,簡單選擇排序思想也比較簡單,比上一節的快速排序可能更好理解。基本思想 選擇排序的主要操作是選擇,其主要思想是 每趟排序在當前待排序序列中選出關鍵碼最小的記錄,新增到有序序列中。第i 趟在n i 1 i 1,2,n 1 個記錄中選取關鍵碼最...

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

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

排序演算法 簡單選擇排序

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