直接插入排序演算法C 實現

2021-08-02 20:15:20 字數 991 閱讀 4308

最近開始學習演算法導論,這篇文章就當作學習開篇了,有些簡單的演算法就只給出**實現了,詳細的介紹相信大家都能掌握,此標籤下的演算法都是以c++語言實現。

演算法的偽**如下,理解下思想

insertion-sort(a)

for j=2 to a.length

key=a[j]

//insert a[j] into the sorted sequencea[1.....j-1]

i=j-1

while i>0and a[i]>key

a[i+1]=a[i]

i=i-1

a[i+1]=key

廢話不多說,直接上**。

#include "iostream"

#define max_size 10 //假設10個數字排序

using namespace std;

int main()

for (auto c : a) //遍歷輸出,檢視正確性

cout << c << " ";

cout << endl;

int i, j;

int temp; //定義乙個變數,用於交換儲存臨時值

for ( i = 1; i < max_size; i++) //從陣列第二個開始比較,預設第乙個是有序的

else //找到插入點,結束內層迴圈

break;

} a[j + 1] = temp; //j+1 才是插入的點

直接插入排序演算法C 實現

演算法的偽 如下,理解下思想 insertion sort a for j 2 to a.length key a j insert a j into the sorted sequencea 1.j 1 i j 1 while i 0and a i key a i 1 a i i i 1 a i ...

實現直接插入排序演算法

實驗題目 實現直接插入排序演算法 實驗目的 領會直接插入排序的過程和演算法設計 實驗內容 設計程式,實現直接插入排序演算法。用相關資料進行測試,並 輸出各趟的排序結果。include define max len 100 最大長度 typedef int key type 定義關鍵字型別為int t...

c 實現直接插入排序

include includeusing namespace std define list init size 100 define listincrement 10 define elemtype int typedef structsqlist 建順序表 void initlist sq sq...