第一部分:演算法思想
插入排序的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。
第二部分:演算法步驟
從第乙個元素開始,該元素認為已經被排序;
取下乙個元素,在已經排序的元素序列中從後向前掃瞄;
如果已排序元素大於新元素,將已排序元素移到下一位置;
重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;
將新元素插入到該位置後;
重複步驟2~5。
第三部分:演算法動態演示
第四部分:部分**實現
void
sort_array
(int
*arr,
int n)
// 程式設計實現《插入排序演算法》:將亂序序列arr轉化為公升序序列
// 函式引數:亂序整數陣列(無重複元素) 陣列長度
arr[j+1]
= temp ;
}}
資料結構 十大經典排序演算法
0演算法概述 0.1演算法分類 十種常見排序演算法可以分為兩大類 比較類排序 通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o nlogn 因此也稱為非線性時間比較類排序。非比較類排序 不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此也稱為線性時間非...
資料結構 十大經典排序演算法之氣泡排序
演算法思想 氣泡排序重複地遍歷待排序的數列,每次比較兩個相鄰元素,如果它們的順序錯誤就把它們交換。重複地進行遍歷直到沒有再需要交換時表示數列已經排序完成。演算法步驟 比較相鄰的元素 若第乙個比第二個大,則交換 遍歷開始第一對到結尾最後一對,執行步驟1 重複步驟1 2,直到排序完成。可改進的氣泡排序 ...
資料結構 十大經典排序演算法之選擇排序
第一部分 演算法思想 選擇排序是一種簡單直觀的排序演算法,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。第二部分 演算法步驟 初始狀態 無序序列為r 0,n 1 長度n,有序區為空 第...