每日coding 排序演算法 插入排序

2021-09-26 10:50:29 字數 613 閱讀 1403

插入排序(insertion-sort)的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用記憶體排序(只需用到o(1)的額外空間),在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

時間複雜度: 最佳情況:t(n) = o(n)   最壞情況:t(n) = o(n2)   平均情況:t(n) = o(n2)

空間複雜度: o(1)

穩定性:穩定

基於比較

#includeusing namespace std;

int insert_sort(int *nums, int length)

nums[j+1]=tmp;

}return 0;

}int main() ;

int length = sizeof(nums)/sizeof(nums[0]);

int i;

for (i=0;icout

for(i=0;icout

}

排序演算法 冒泡 插入 歸併 快排

整理了一下幾種常見的排序演算法,包括冒泡 插入 歸併 快排。還有另外幾種待整理 堆排序 希爾排序 桶排序 直接上 include include include using namespace std void swap int a,int b 最簡單的氣泡排序,時間複雜度o n n void bu...

排序演算法總結 插入 歸併 快排

void selectionsort int arr,int n swap arr minidx arr times times 對於近乎有序的陣列,排序效率很高,時間複雜度接近o n 基礎版 void insertionsort int arr,int n 優化版 減少不斷交換中的重複賦值 voi...

每日coding 查詢演算法 插值查詢

插值查詢 演算法簡介 插值查詢是根據要查詢的關鍵字key與查詢表中最大最小記錄的關鍵字比較後的查詢方法,其核心就在於插值的計算公式 mid low key a low a high a low high low 演算法思想 基於二分查詢演算法,將查詢點的選擇改進為自適應選擇,可以提高查詢效率。當然,...