正宗插入排序演算法
阿新 • • 發佈:2020-07-31
正宗插入排序演算法C++版本,看圖一目瞭然。
最低時間複雜度O(n),最高時間複雜度O(n^2),平均時間複雜度O(n^2)
#include <iostream> #include <vector> #include <stack> #include <cstring> #include <string> #include <queue> #include <algorithm> #include "TreeNode.h" using namespace std; // 正宗插入法排序 void InsertSort(int num[], int length){ int i, j; for(i = 1; i < length; i++){ if(num[i] < num[i-1]){ // 設定哨兵 int sold = num[i]; for(j = i - 1; j >= 0 && num[j] > sold; j--){ num[j + 1] = num[j]; } // 將當前值插入正確的位置 num[j + 1] = sold; } } } int main(int argc, char* argv[]){ int arr[8] = {8,7,6,5,4,3,2,1}; InsertSort(arr, sizeof(arr)/sizeof(arr[0])); for(int i = 0; i < 8; i++){ cout<<arr[i]<<"\t"; } return 0; }