教你如何運用golang 實現陣列的隨機排序

2022-09-21 03:42:09 字數 1992 閱讀 3462

本文主要介紹了golang 陣列隨機排序的實現,文中通過示例**介紹的非常詳細,具有一定的參考價值,感興趣的小夥伴們可以參考一下

前言

目前接到乙個推薦資料的需求,需要將資料庫中獲取到的資料進行隨機排序後返回給使用者。考慮了一下,有兩種使用方式,一種是通過資料庫 order by rand() ,還有一種就是本文需要使用到的**處理

具體實現步驟如下

1.引入庫

**如下:

import (

"fmt"

"math/rand"

"time"

)

2.組裝資料並排序(方案一)

**如下:

type categoryentity struct 

func main()

data[1] = categoryentity

data[2] = categoryentity

data[3] = categoryentity

data[4] = categoryentity

data[5] = categoryentity

data[6] = categoryentity

data[7] = categoryentity

data[8] = categoryentity

data[9] = categoryentity

fmt.println("隨機前:", data)

//如果不使用rand.seed(seed int64),每次執行,得到的隨機數會一樣

rand.seed(time.now().unix())

//採用rand.shuffle,將切片隨機化處理後返回

rand.shuffle(len(data), func(i, j int) )

fmt.println("隨機後:", data)

}

3.組裝資料並排序(方案二)

**如下:

type categoryentity struct 

func main()

data[1] = categoryentity

data[2] = categoryentity

data[3] = categoryentity

data[4] = categoryentity

data[5] = categoryentity

data[6] = categoryentity

data[7] = categoryentity

data[8] = categoryentity

data[9] = categoryentity

fmt.println("隨機前:", data)

//如果不使用rand.seed(seed int64),每次執行,得到的隨機數會一樣

rand.seed(time.now().unix())

length := len(data)

for i := 0; i < length; i++

fmt.println("隨機後:", data)}

// 交換資料

func exchange(data categoryentity, i, j int)

總結

整體比較簡單,但是需要注意的有兩點:

1:golang中 rand的使用方式,如果不使用rand.seed(seed int64),每次執行,得到的隨機數會一樣

2:方案一種採用rand.shuffle+匿名函式,將切片隨機化處理後返回。

3:方案二使用golang特有的陣列交換方式:

func exchange(data categoryentity, i, j int)
到此這篇關於golang 陣列隨機排序的實現的文章就介紹到這了。

教你如何運用python golang實現迴圈鍊錶

這篇文章主要介紹了python golang如何實現迴圈鍊錶,幫助大家更好的理解和學習迴圈鍊錶的實現方法,感興趣的朋友可以了解下 迴圈鍊錶就是將單鏈表的末尾指向其頭部,形成乙個環。迴圈鍊錶的增刪操作和單鏈表的增刪操作區別不大。只是增加時,需要考慮空鍊錶增加第乙個節點的特殊情況 刪除時需考慮刪除節點是...

教你如何運用自聯接(不太明白)

sql有乙個技巧可以運用自聯接來把每一行與下一行對應。像上面這種查詢,你可以製造像秩 rank 或者位置 position 行差 row differences 累積總計 running total 等等的資料 it專家網獨家 如果不使用分析函式,怎麼樣能夠查詢累積和?例如 1 150 150 1 ...

golang 實現兩數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 golang 實現 package main impor...