【你們什么都懂】 【我知道你們很專業(yè)】 微民網碼農多。。。求個算法。10w個聯系人進行分組。。
整理時間:2013-08-16 12:45 來源:m.99912.com.cn 作者:編輯 點擊:次
【樓主】2013-08-15 14:33
» 微民網碼農多。。。求個算法。10w個聯系人進行分組。。
數學模型很簡單 有10w個聯系人。
要把他們分組。
也就是相等的放在一起。
相等的條件是 名字 或者 電話號碼 相同。
比如說 有3個聯系人 zhou:123 mushi:123 zhou:456
那這3個聯系人 就要放在一組。。
在不考慮空間和 線程數量對cpu的影響下 。要求最快的速度把這10w個聯系人完成分組 有什么好的算法么/?
網友評論2013-08-15 15:04
不難吧
建立一個 集合(user 10W用戶信息)
int k=0
for(i=1,i<10w,i++){
新建一個分組實體
for(j=i+1,j<10w,j++){
if(條件符合){
分組實體.add(user)
集合.delete(user)
}
}
K++
}
結果 是K 是多少 就是有多少個分組
網友評論2013-08-15 15:19
被一樓終結了?
網友評論2013-08-15 15:21
不考慮空間,先建立個已經分類完的表
然后一次賦值,齊活,O(1)...
網友評論2013-08-15 15:23
Reply Post by yuanyixy123 (2013-08-15 15:04):
不難吧
建立一個 集合(user 10W用戶信息)
int k=0
for(i=1,i<10w,i++){
新建一個分組實體
for(j=i+1,j<10w,j++){
if(條件符合){
分組實體.add(user)
集合.delete(user)
}
}
K++
}
結果 是K 是多少 就是有多少個分組
現在就是用的這個方法 在最差的情況下。跑的太慢了。
網友評論2013-08-15 15:24
如果是這種情況
A 123
B 123
A 456
D 456
D 789
那么這5個算一組嗎?
網友評論2013-08-15 15:25
就一樓的想法,lz是做cc的吧
網友評論2013-08-15 15:26
看成排序了
網友評論2013-08-15 15:26
Reply to Reply Post by mjutghn1226 (2013-08-15 15:23)
那就百度下 排序方法好了 找到 匹配次數最少的算法 能提升一點性能 這個本身就有10W的量你們是要多快 才算快
網友評論2013-08-15 15:30
我想可不可以這樣:
用一個HashMap,用姓名的hash值做key,后面每個記錄的姓名hash一下然后到hashmap中查找,有這個key就放入一組,否則插入新key。
不過hashmap底層是不是用linklist做的,好久沒搞過了都忘記了。
網友評論2013-08-15 15:35
理解錯了 編輯掉
網友評論2013-08-15 15:41
Reply Post by 東方未名 (2013-08-15 15:30):
我想可不可以這樣:
用一個HashMap,用姓名的hash值做key,后面每個記錄的姓名hash一下然后到hashmap中查找,有這個key就放入一組,否則插入新key。
不過hashmap底層是不是用linklist做的,好久沒搞過了都忘記了。
我覺得是一張二維的哈希表,縱軸是姓名的hash,橫軸是號碼的hash,先用10w數據填充著張表,然后再通過條件一組一組取出來?
網友評論2013-08-15 16:00
Reply Post by yuanyixy123 (2013-08-15 15:26):
那就百度下 排序方法好了 找到 匹配次數最少的算法 能提升一點性能 這個本身就有10W的量你們是要多快 才算快
實際的業(yè)務比這個復雜的多。我是換了一種數學模型來闡述這個業(yè)務需求。
網友評論2013-08-15 16:07
Reply Post by 卡斯布兒 (2013-08-15 15:41):
我覺得是一張二維的哈希表,縱軸是姓名的hash,橫軸是號碼的hash,先用10w數據填充著張表,然后再通過條件一組一組取出來?
我現在改的算法 跟你差不多。有一定提升。但是hash 算法 要改一下。還在找。。。大學學的都忘光了。。hashcode值 范圍太大 空間占用太高了。。
數學一般的人真是難。。。不過還是謝謝你。。這條路應該優(yōu)化一下 能繼續(xù)走下去
網友評論2013-08-15 16:08
微民網碼農多。。。求個算法。10w個聯系人進行分組。。
不考慮空間,那方法就是做多組二叉樹,一次性設定好每種排序,比如名字,號碼,男女…………然后提取的時候從不同的樹中提取吧……根據名字的,就從名字來找,從效率來說,第一次慢點,以后每次尋找,判斷次數不會超過32次吧
網友評論2013-08-15 19:48
把名字和電話號碼做成hash 然后用并查集合并
復雜度O(n)
LOL羅輯思維全國人大代表真三搞笑視頻柳巖
Copyright © 2012年2月8日
卖婬日B视频|
抽插免费视频一区二区|
亚洲无码专区在线观看视频在线|
av91少妇|
中文字幕精品日本久久|
偷拍自拍中文在线视频|
天天综合久久剧情天天碰|
半夜啪啪啪网站免费不卡|
插女逼视频|
亚洲美女自拍偷拍一区|
高潮久久网站|
巧露在线成人亚洲永久网站观看
|
欧美顶级操逼|
欧美日韩日本一区十区|
美女一AV|
亚洲第17页国产精品|
国产一级日B视频|
国产人久久久人人人人爽|
69网一区二区三区四女|
99国产一区精品|
欧美91射综合|
狠狠燥夜夜爽|
性生活免费视频网址|
亚洲图片欧洲图片日韩在线视频|
色5月婷婷91色|
国产 日韩 欧美在线观看|
国产亚洲精品久久777777美腿
|
夜夜爽狠狠爽|
久久久久国产精品人妻一区|
欧美 日韩 久久|
欧美 日韩 3p|
黑人巨大爆粗亚裔女人|
国产一二区麻豆东北|
人人妻人人干人人射|
國產精品亂碼一區二區視頻|
美女性高潮网站|
韩国午夜精品区|
啪啪啪啪三区四区|
国产一丶二丶三区|
欧美日韩日本在线|
日韩 欧美 一区二区三区四区|