數據結構和算法教學
環境設置
數據結構算法基礎
數據結構漸近分析
數據結構基本概念
數組
哈希表
哈希表實例程序(C語言)
鏈表
鏈表實例程序(C語言)
雙向鏈表
循環鏈表
循環鏈表實例程序(C語言)
堆棧
堆棧實例代碼(C語言)
表達式分析
隊列
隊列實例代碼(C語言)
隊列優先級
線性搜索(查找)
線性搜索實例程序(C語言)
二進制搜索(查找)
二進制搜索/查找程序(C語言)
冒泡排序算法
冒泡排序算法實例程序(C語言)
插入排序
選擇排序
選擇排序實例程序(C語言)
合併排序算法
合併排序算法實例程序(C語言)
希爾排序
希爾排序實例程序(C程序)
快速排序
快速排序實例程序(C語言)
圖數據結構
深度優先遍歷
廣度優先遍歷
樹(二叉樹)
樹遍歷
二叉搜索樹
堆
遞歸基礎知識
插入排序
插入排序是一個簡單的排序算法。這種排序算法是就地比較基礎的算法,其中一個項目被採取,其適當的位置進行搜索,而且此項目將插入到特定的位置不斷增長的排序列表。該算法是不適合大的數據集作爲它平均值和最壞情況的複雜性是O(n2) 其中n是的項目數量。
僞代碼
procedure insertionSort( A : array of items )
int holePosition
int valueToInsert
for i = 1 to length(A) inclusive do:
/* select value to be inserted */
valueToInsert = A[i]
holePosition = i
/*locate hole position for the element to be inserted */
while holePosition > 0 and A\[i-1\] > valueToInsert do:
A\[holePosition\] = A\[holePosition-1\]
holePosition = holePosition -1
end while
/\* insert the number at hole position \*/
A\[holePosition\] = valueToInsert
end for
end procedure
要查看C編程語言插入排序的實現,請點擊這裏