4、Gnome sort侏儒排序

冒泡和插入排序结合
适合大部分排序完成后再随机插入小部分的再排序

// 侏儒排序
func GnomeSort(arr []int)  {
    i := 1
    for i < len(arr) {
        if arr[i] >= arr[i-1] {
            i++
        } else {
            arr[i], arr[i-1] = arr[i-1], arr[i] // 排序不正确前后交换
            if i > 1 { // 游标大于1向后移,和前一个数对比
                i--
            }
        }
    }
}

func main()  {
    arr := []int{2, 3, 4, 5, 7, 9, 4, 10, 0}
    GnomeSort(arr)
    fmt.Println(arr)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我是来自湖北的话痨女孩妖妖,今年24岁。每天看起来都是一副没心没肺的样子,乐呵呵的,其实我只是善于伪装。隐藏最真实...
    hy如果云知道阅读 1,670评论 0 0
  • 有人说:假如你难以选择两个都很喜欢的东西,那就选择后喜欢的那个,因为如果第一个够喜欢就不会有第二喜欢。
    会矫情的澍阅读 891评论 0 0
  • 转眼间,宝贝已入园3周了,从每天班级老师发来的照片,感受到宝贝已经逐渐适应了幼儿园的生活,从一开始的环境...
    艾瑞木子阅读 2,875评论 0 4
  • 1.只要决心成功,失败就永远不会把你击垮 2.失败就是一个人没能达到他的人生目标,不论这个目标是什么。 3.我要用...
    Miss_木夕阅读 5,646评论 1 0