最近開始學習演算法導論,這篇文章就當作學習開篇了,有些簡單的演算法就只給出**實現了,詳細的介紹相信大家都能掌握,此標籤下的演算法都是以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...