tft每日頭條

 > 科技

 > 學生手機号碼尾号什麼最好

學生手機号碼尾号什麼最好

科技 更新时间:2025-01-07 18:01:16

之前寫了一個100W條記錄中查找特定數據的性能測試,和遍曆算法做了比較,二分法性能強很多.

今天我用二分法和bitmap數據結構存儲來比較下:

場景一:

200W條手機号碼記錄中查找特定手機号碼的記錄需要花費的時間:

學生手機号碼尾号什麼最好(200W手機号碼中查找特定号碼)1

可以看到查找手機号碼: 19998600000,兩種算法所用的時間差距還是比較明顯的,

bitmap強于二分法,效率大概是7倍,效果也比較明顯,bitmap屬于使用空間換時間,因此bitmap所要占用的内存空間會更大,需要事先根據數據量和存儲的數據大小來申請存儲空間,對于兩種算法的取舍還是要基于當前的業務場景

大家如果有更好的想法,歡迎交流學習!!!!!

下面就是go實現的bitmap算法的主要代碼:

type BitMap []byte

func NewBitMap(max int) BitMap {

return make([]byte, (max>>3) 1)

}

func (b BitMap) Set(n uint) {

if (n >> 3) > uint(len(b)) {

fmt.Println("數字太大超過最大存放範圍")

return

}

index := n >> 3

pos := n & 0x07

b[index] = b[index] | 1<<pos

}

func (b BitMap) Get(n uint) bool {

if (n >> 3) > uint(len(b)) {

fmt.Println("數字太大超過最大存放範圍")

return false

}

index := n >> 3

pos := n & 0x07

return b[index]&(1<<pos) != 0

}

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved