91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[golang] 數據結構-地精排序

發布時間:2020-06-22 01:23:18 來源:網絡 閱讀:688 作者:NicoChen 欄目:編程語言

碎碎念
這是一個名字起得很隨便的排序算法,是我我就叫他史萊姆排序ㄟ(▔,▔)ㄏ

原理
地精排序是也是一種交換排序。它只進行一輪比較,在這輪比較中,遇到比較前面元素大就向后移動一位繼續比較,遇到比前面值小就和前面的值交換,并向前移動一位。

復雜度
對已經排序號的隊列哥布林只需從頭走到尾就結束了,所以最好情況時間復雜度就是O(n),平均的時間復雜度也和冒泡排序一樣也是O(n^2)。

代碼

package main

import (
    "time"
    "fmt"
    "math/rand"
)

func main() {
    var length = 10
    var list []int

    // 以時間戳為種子生成隨機數,保證每次運行數據不重復
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    for i := 0; i < length; i++ {
        list = append(list, int(r.Intn(1000)))
    }
    fmt.Println(list)

    gnome := 1
    // 地精從第二個坑位開始向最后一個坑走過去
    for gnome < length {
        // 如果地精發現自己這個坑位的值不比前面一個坑位的小,就繼續向下個坑位走過去
        if list[gnome] >= list[gnome-1] {
            gnome++
        } else {
            // 如果比前個坑位值小,就交換兩個坑位的值,然后再回到前一個坑位
            list[gnome], list[gnome-1] = list[gnome-1], list[gnome]
            if gnome > 1 {
                gnome--
            }
            fmt.Println(list)
        }
    }

}

運行結果
[golang] 數據結構-地精排序

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

皋兰县| 满城县| 美姑县| 汶川县| 景谷| 炎陵县| 遂川县| 长汀县| 桃园市| 惠安县| 特克斯县| 靖西县| 井研县| 宿松县| 乃东县| 江达县| 富宁县| 呈贡县| 潞西市| 博罗县| 武平县| 广平县| 敦煌市| 金秀| 磴口县| 巴中市| 庆元县| 谢通门县| 元江| 鄂尔多斯市| 侯马市| 湘潭市| 章丘市| 深水埗区| 大理市| 大宁县| 汕尾市| 文山县| 台南市| 灵武市| 铜陵市|