資料結構 十大經典排序演算法之選擇排序

2021-10-06 04:57:56 字數 642 閱讀 2760

第一部分:演算法思想

選擇排序是一種簡單直觀的排序演算法,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

**第二部分:**演算法步驟

初始狀態:無序序列為r[0,n-1],長度n,有序區為空;

第i=1,…,n-1趟排序從當前無序區r[i-1,n-1]中選出最小的元素r[k],並將它與無序區的第1個記錄r[i-1]交換,則r[0,i-1]變為元素個數增加1的新有序區,r[i,n-1]變為元素個數減少1的新無序區;n-1趟選擇交換後結束。

**第三部分:**演算法動態演示

**第四部分:**部分**實現

void

sort_array

(int

*arr,

int n)

// 程式設計實現《選擇排序演算法》:將亂序序列arr轉化為公升序序列

// 函式引數:亂序整數陣列(無重複元素) 陣列長度

if(min!=i)

}}

資料結構 十大經典排序演算法

0演算法概述 0.1演算法分類 十種常見排序演算法可以分為兩大類 比較類排序 通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o nlogn 因此也稱為非線性時間比較類排序。非比較類排序 不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此也稱為線性時間非...

十大經典排序演算法之 選擇排序

選擇排序的工作原理簡單直觀,和氣泡排序也有異曲同工之處,它將需要排序的陣列分為有序區和無序區,首先在無序區選出最小的數,放到有序區的末尾 有序區為從小到大排序好的陣列,因此此時從無序區選出的最小的數一定大於有序區中最大的數 以此類推,直到陣列有序。時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好...

資料結構 十大經典排序演算法之氣泡排序

演算法思想 氣泡排序重複地遍歷待排序的數列,每次比較兩個相鄰元素,如果它們的順序錯誤就把它們交換。重複地進行遍歷直到沒有再需要交換時表示數列已經排序完成。演算法步驟 比較相鄰的元素 若第乙個比第二個大,則交換 遍歷開始第一對到結尾最後一對,執行步驟1 重複步驟1 2,直到排序完成。可改進的氣泡排序 ...