十大排序 直接插入排序

2022-07-31 07:21:09 字數 1353 閱讀 7430

直接插入排序

空間複雜度o(1)

時間複雜度最好情況是o(n),最壞情況是o(n²),平均情況是o(n²)

是穩定的內排序演算法

從後往前比較,把後面的元素作為哨兵

#includeusing namespace std;

#includevoid insertionsort(vector&q)

else

}q[j+1] = t;

}}void directinsertionsort(int a,int n)

else

}a[j+1] = t;

}}void insertionsort2(int a,int n) //baike's solution

a[j+1] = temp;}}

}void insertionsort_lts(vector&q)

else

}q[j+1] = t;

}}void directinsertionsort_lts(int a,int n)

else

}a[j+1] = t;

}}void insertionsort2_lts(int a,int n)

a[j+1] = temp;}}

}int main()

; int n = sizeof(arr);

//int arr = ;

//int n = sizeof(arr) / sizeof(arr[0]);

vectora;

for(int i = 0 ; i < n ; i++)

insertionsort(a);

for(auto i : a)

cout

for(int i = 0 ; i < n ; i++)

cout

int len = sizeof(b) / sizeof(b[0]);

cout

for(int i = 0 ; i < len ; i++)

cout

for(auto i : a)

cout

for(int i = 0 ; i < n ; i++)

cout

for(int i = 0 ; i < len ; i++)

cout

return 0;

}

八大排序 插入排序 直接插入排序

基本思想 將乙個記錄插入到已排序好的有序表中,從而得到乙個新,記錄數增1的有序表。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。直接插入排序示例 如果碰見乙個和插入元素相等的,那麼插入元素把想插入的...

八大排序 直接插入排序

直接插入排序 straight insertion sort 的基本操作是將乙個元素插入到序列已經有序的那一部分中去,從而使序列中有序的部分逐漸擴大,直到整個序列有序。博主認為直接插入排序過程比較容易理解,所以不作過多贅述,直接上 include void main int length sizeo...

七大排序之直接插入排序

整個區間被分為有序區間和無序區間,可以讓陣列的第乙個資料充當有序區間,其他是無序區間,每次將無序區間的第乙個數和有序區間最後乙個數作比較,如果無序區間的數比有序區間的數小,從有序區間的最後乙個數開始比較,直到這個數大於有序區間的數或者下標是 0 停止 如果要比較的數大於有序區間的最後乙個數,則不比較...