Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解
插入排序
插入排序,英文名(insertion sort)是一種簡單且有效的比較排序算法。
思想: 在每次迭代過程中算法隨機地從輸入序列中移除一個元素,并將改元素插入待排序序列的正確位置。重復(fù)該過程,直到所有輸入元素都被選擇一次,排序結(jié)束。
插入排序有點像小時候我們抓撲克牌的方式,如果抓起一張牌,我們放在手里;抓起第二張的時候,會跟手里的第一張牌進(jìn)行比較,比手里的第一張牌小放在左邊,否則,放在右邊。
因此,對所有的牌重復(fù)這樣的操作,所以每一次都是插入最正確的排序順序,直到牌抓完為止。

動畫演示
假設(shè)我們需要從小到大進(jìn)行排序,動畫演示如下:

Go 代碼實現(xiàn)
package main
import "fmt"
func main() {
arrays := []int{6, 2, 5, 8, 9, 3, 1}
length := len(arrays)
insertionSort(arrays, length)
for i := 0; i < length; i++ {
fmt.Printf("%d ", arrays[i])
}
}
func insertionSort(unsorted []int, length int) {
for i := 0; i < length; i++ {
var insertElement = unsorted[i]
var insertPosition = i
for j := insertPosition - 1; j >= 0; j-- {
if insertElement < unsorted[j] {
unsorted[j+1] = unsorted[j]
insertPosition--
}
}
unsorted[insertPosition] = insertElement
}
}
運行結(jié)果:
[Running] go run "e:\Coding Workspaces\LearningGoTheEasiestWay\Go 數(shù)據(jù)結(jié)構(gòu)\main.go"
1 2 3 5 6 8 9
總結(jié)
插入排序?qū)崿F(xiàn)簡單,理解也較容易,數(shù)據(jù)量較少時效率高,算法的實際運行效率優(yōu)于選擇排序和冒泡排序。

空間復(fù)雜度: 空間復(fù)雜度為 O(1),即不輸入借助其他的輔助空間。
穩(wěn)定性: 插入排序是穩(wěn)定的排序算法,在鍵值相同時它能夠保持輸入數(shù)據(jù)的原有次序。
以上就是Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go 數(shù)據(jù)結(jié)構(gòu)插入排序的資料請關(guān)注腳本之家其它相關(guān)文章!
- go?sync?Waitgroup數(shù)據(jù)結(jié)構(gòu)實現(xiàn)基本操作詳解
- Golang迭代如何在Go中循環(huán)數(shù)據(jù)結(jié)構(gòu)使用詳解
- Go 語言數(shù)據(jù)結(jié)構(gòu)之雙鏈表學(xué)習(xí)教程
- Go語言數(shù)據(jù)結(jié)構(gòu)之希爾排序示例詳解
- Go 數(shù)據(jù)結(jié)構(gòu)之堆排序示例詳解
- Go語言數(shù)據(jù)結(jié)構(gòu)之選擇排序示例詳解
- go數(shù)據(jù)結(jié)構(gòu)和算法BitMap原理及實現(xiàn)示例
- Go?語言數(shù)據(jù)結(jié)構(gòu)如何實現(xiàn)抄一個list示例詳解
相關(guān)文章
Gin與Mysql實現(xiàn)簡單Restful風(fēng)格API實戰(zhàn)示例詳解
這篇文章主要為大家介紹了Gin與Mysql實現(xiàn)簡單Restful風(fēng)格API示例詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
解析Go 標(biāo)準(zhǔn)庫 http.FileServer 實現(xiàn)靜態(tài)文件服務(wù)
http.FileServer 方法屬于標(biāo)準(zhǔn)庫 net/http,返回一個使用 FileSystem 接口 root 提供文件訪問服務(wù)的 HTTP 處理器。下面通過本文給大家介紹Go 標(biāo)準(zhǔn)庫 http.FileServer 實現(xiàn)靜態(tài)文件服務(wù)的相關(guān)知識,感興趣的朋友一起看看吧2018-08-08

