插入排序的時間複雜度,正常情況會低於冒泡和選擇,最壞的情況,等於冒泡和選擇
理論部分
插入排序,就是新建立乙個陣列,將舊陣列中的資料,挨個插入到新陣列中,在插入的時候,放在正確的位置。
步驟如下:
初始化原始陣列sort_init
初始化新陣列 reslist
1,從原始陣列的1號位開始取數
將其插入到reslist中
2,繼續
3,繼續取出
並從後往前,與 reslist 的元素比較,遇到小於或者等於4的元素,則插入到此元素後面,並跳出本次迴圈
**部分
func
insertsort()
reslist :=
int// iter_print(reslist...)
for i :=
1; i <
len(sort_init)
; i++
else
, reslist[j+1:
]...
) reslist =
(reslist[
:j+1
], middlenum)
reslist =
(reslist, tmp...)}
break
}// 如果將reslist全部遍歷完,所有元素都大於middlenum,則將其插入到reslist的最前面
if j ==
0, reslist...)}
}}iter_print
(reslist...)}
// 列印陣列
func
iter_print
(sort_list ...
int)
println()
}
插入排序演算法實現
插入排序在眾多排序演算法中是一種穩定的排序方法,其平均與最差時間複雜度均為o n2 空間複雜度為o 1 主要思路 每一次排序都將待排序元素的元素,從已排序的元素的左邊 右邊 開始,依次往右邊 左邊 比較,滿足比較條件的話就交換元素的位置。原理很簡單,先看 include using namespac...
go語言實現排序 插入排序
相信大家對直接插入排序都不陌生,通俗來說就是每次取要排序陣列內的第i個數,在前i 1個數中,進行比較,找到正確的位置,插入即可。func insert nums int,n int int nums end 1 num return nums 分析 對於直接插入排序,平均時間複雜為o n 2 空間複...
排序演算法 插入排序 C 實現
插入排序的基本思想是每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。常見的插入排序有插入排序 insertion sort 希爾排序 shell sort 二叉查詢樹排序 tree sort 圖書館排序 library sort patien...