插入排序演算法 C語言實現

2021-10-24 03:35:02 字數 548 閱讀 6149

基本思想:每一步將乙個待排序的資料插入到前面已經排好序的有序序列中,直到插完所有元素為止。

在有序陣列中插入當前元素key的時候,從有序陣列的最後乙個元素開始往前遍歷,如果a[i] > key ,則把a[i+1]=a[i],即把比key大的元素以此朝後挪,給key值騰位置,一旦找到有序陣列中比key小的元素,那說明key找到自己的位置了,跳出迴圈,a[i+1] = key,把key值放到找好的位置上去

第1趟:將第2個元素插入前面的有序子串行,此時前面只有乙個元素,當然是有序的

第2趟:將第3個元素插入前面的有序子串行,此時前面的2個元素已經是有序的

......

第n-1趟:將第n個元素插入前面的有序子串行,此時前面的n-1個元素已經是有序的

#include int main()

// 核心思想部分

for(j = 1; j < n; j++)

a[i + 1] = key; }

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

return 0;

}

C語言實現插入排序

插入排序 我在學習一些簡單的演算法,我用文字記錄我的進步。插入排序 其實就是在待排序列中找到,沒有排序好的元素,插入的適當的位置,本文以公升序為例,簡單的講解一下。直接看下面的 include stdio.h include stdlib.h include string.h void swap i...

C語言實現插入排序

插入排序是排序演算法的一種,它不改變原有的序列 陣列 而是建立乙個新的序列,在新序列上進行操作。這裡以從小到大排序為例進行講解。插入排序的基本思想是,將元素逐個新增到已經排序好的陣列中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好的陣列是仍然有序的。在實際使用中,通常是排序整個無序陣列,所...

插入排序(C 語言實現)

插入排序分為直接插入排序和折半插入排序,直接插入排序利用遍歷的方式查詢插入位置,時間複雜度為n 2,直接插入法由於不會改變相同元素的相對順序,所以直接插入排序是一種穩定的排序演算法。折半插入排序 二分插入排序 折半插入利用二分法查詢插入位置,只是減少了查詢比較的操作,所以其時間複雜度仍為n 2,二分...