排序演算法整理 1 插入排序

2021-06-17 15:44:53 字數 792 閱讀 9700

貌似需要整理一下排序演算法了,正好最近在看的宋勁杉的《linux一站式程式設計》也提到了幾個排序演算法,於是決定把幾個常見的排序演算法都寫寫吧。

插入排序的過程就是玩兒撲克牌時整理手牌的過程,不斷地從右側選取一張牌,然後把它和左邊已經排序的牌做逐一比較,插入到合適的位置。

下面兩個函式用來依次列印陣列。功能一樣,引數不一樣,這是為了方便不同的資料型別的呼叫。

void print_num_1(uint32_t* arr, uint32_t len);

tem_arr[0]=arr[0];

for( int j=1;jarr[m])

for(int k=j;k>=m+1;k--)

tem_arr[k]=tem_arr[k-1];

tem_arr[m]=arr[j];

std::cout<<"\nj:"<

//standard version

void insertion_sort_2(uint32_t* arr, uint32_t len)

arr[m+1]=key;

std::cout<<"\nj:"<

int main()

; print_num_2(unsorted_arr,10);

//insertion_sort_1(unsorted_arr, 10);

insertion_sort_2(unsorted_arr, 10);

print_num_2(unsorted_arr,10);

return 0;

}

排序演算法(1) 插入排序

輸入 n個數的乙個序列 a1,a2 an 輸出 輸入序列的乙個排序 a1,a2,an 滿足a1 a2 an。首先,對於少量元素的排序,插入排序是一種有效的演算法。舉個生動的例子,插入排序就像我們手裡剛剛分到的撲克牌,亂序。我們會將排由左到右進行整理,由小到大排序。待排序列 5 4 3 9 7 5 3...

排序演算法1 插入排序

插入排序思想 每一步將乙個待排序的元素,按期排序碼的大小,插入到前面已經排好序的一組元素的合適位置上去,知道元素插完。插入排序分為直接插入排序,和優化後的二分插入排序,我們先看第一種 基本思想 當我們插入第i i 1 個元素時,前面的所有元素已經排好序,此時我們使用當前元素從後向前比較,直到找到乙個...

排序演算法 1 插入排序

插入排序的過程和平時打牌的時候給手裡的牌排序差不多 從牌桌上抽一張牌 把抽到的牌從右到左 或者從左到右 挨個和手裡的牌進行比較,當發現左邊的牌大一些,右邊的牌小一些,就將牌插入到該位置 重複執行步驟1,直到牌抽完了 include include 對範圍 first,last 的元素進行插入排序 p...