演算法 插入排序(go實現)

2021-10-05 15:31:43 字數 904 閱讀 6156

插入排序的時間複雜度,正常情況會低於冒泡和選擇,最壞的情況,等於冒泡和選擇

理論部分

插入排序,就是新建立乙個陣列,將舊陣列中的資料,挨個插入到新陣列中,在插入的時候,放在正確的位置。

步驟如下:

初始化原始陣列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...