【热闻】Go语言数据结构之插入排序示例详解
目录
插入排序动画演示Go 代码实现总结插入排序
插入排序,英文名(insertionsort)是一种简单且有效的比较排序算法。
思想:在每次迭代过程中算法随机地从输入序列中移除一个元素,并将改元素插入待排序序列的正确位置。重复该过程,直到所有输入元素都被选择一次,排序结束。
(资料图片仅供参考)
插入排序有点像小时候我们抓扑克牌的方式,如果抓起一张牌,我们放在手里;抓起第二张的时候,会跟手里的第一张牌进行比较,比手里的第一张牌小放在左边,否则,放在右边。
因此,对所有的牌重复这样的操作,所以每一次都是插入最正确的排序顺序,直到牌抓完为止。
动画演示
假设我们需要从小到大进行排序,动画演示如下:
Go 代码实现
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 } }
运行结果:
[Running] go run "e:\Coding Workspaces\LearningGoTheEasiestWay\Go 数据结构\main.go"
1 2 3 5 6 8 9
总结
插入排序实现简单,理解也较容易,数据量较少时效率高,算法的实际运行效率优于选择排序和冒泡排序。
空间复杂度:空间复杂度为 O(1),即不输入借助其他的辅助空间。
稳定性:插入排序是稳定的排序算法,在键值相同时它能够保持输入数据的原有次序。
以上就是Go语言数据结构之插入排序示例详解的详细内容,更多关于Go 数据结构插入排序的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 1联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 2亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 3现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 4如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 5AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 6转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 7充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 8好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 9名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 10亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战