一、什麼是選擇類排序?
顧名思義,選擇類排序的核心就是「選擇」,為什麼選擇呢?怎麼樣選擇呢?
選擇類排序的基本思路就是:
在待排序序列中選擇乙個最小(最大)的元素出來,並將之放到合適的位置上,最終將待排序序列變成乙個有序的序列。
二、有哪些選擇類的排序演算法?
根據選擇元素的方式不同,我們討論兩種選擇類排序演算法:簡單選擇排序和
堆排序。其中簡單選擇排序是通過遍歷待排序元素來選擇得到乙個待排元素,而堆排序是通過大根堆或小根堆堆出乙個待排元素,兩者效率差距較大。簡單來說,堆排序比簡單選擇排序效率更高一些。但堆排序也比簡單選擇排序演算法實現更複雜,本節只介紹簡單選擇排序,下節來說說堆排序!
三、理解簡單選擇排序:
四、源**實現:
/*
**功能: 簡單選擇排序法公升序排序乙個序列
**引數說明:
**@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有變化,...