日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀

發(fā)布時(shí)間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:題目

給定一系列整型關(guān)鍵字和素?cái)?shù)P,用除留余數(shù)法定義的散列函數(shù)H(Key)=Key將關(guān)鍵字映射到長度為P的散列表中。用線性探測(cè)法解決沖突。

輸入格式:
輸入第一行首先給出兩個(gè)正整數(shù)N(≤1000)和P(≥N的最小素?cái)?shù)),分別為待插入的關(guān)鍵字總數(shù)、以及散列表的長度。第二行給出N個(gè)整型關(guān)鍵字。數(shù)字間以空格分隔。

輸出格式:
在一行內(nèi)輸出每個(gè)整型關(guān)鍵字在散列表中的位置。數(shù)字間以空格分隔,但行末尾不得有多余空格。

輸入樣例:

4 5 24 15 61 88

輸出樣例:

4 0 1 3

二:思路

利用哈希表原理,進(jìn)行存儲(chǔ)數(shù)據(jù),然后處理一個(gè)位置沖突問題

三:上碼

#include<bits/stdc++.h> using namespace std;int main(){int N,M;cin >> N >> M;int array[M];for( int i = 0; i < M; i++){array[i] = 10000; //之所以 初始化為這么大 是為了解決 下標(biāo)為0時(shí),關(guān)鍵值也為0,如果 再出現(xiàn)一個(gè)余數(shù)為0的數(shù),他本來的下標(biāo)應(yīng)為1,//array[i] = 0; //但如果我們初始化為0的話,他就會(huì)出現(xiàn)0 可以拿下方例子進(jìn)行驗(yàn)證}for( int i = 0; i < N; i++){int temp;cin >> temp;int K = 1;int remainder = temp % M;while( array[remainder] != 10000 && array[remainder] != temp ){//如果是相同的元素則直接輸出其在數(shù)組中的下標(biāo)remainder = (temp + K)%M;K++;}K = 1;//為下次沖突做準(zhǔn)備array[remainder] = temp;if( i != N - 1)cout << remainder << ' ';elsecout << remainder; } }//4 5 //0 15 61 20

四:失敗碼

最近老這樣,這個(gè)是我第一次寫的碼,測(cè)試數(shù)據(jù)沒問題,就是超時(shí)了

#include<bits/stdc++.h> using namespace std;int main(){int N,M;int flag = 0;cin >> N >> M;vector<int>v1(M);vector<int>v2;for( int i = 0; i < M; i++ ){v1[i] = -1;}for( int i = 0; i < N; i++ ){int temp;cin >> temp;int K = 1;int remainder = temp%M;if( v1[remainder] == -1 )v1[remainder] = temp;else if (v1[remainder] != temp){while( remainder < M ){remainder = (temp + K)%M;K++;}}v1[remainder] = temp;if( i != N -1 ){cout << remainder << ' ';}elsecout << remainder;} }//5 5 //24 15 61 88 15

加油BOY!

總結(jié)

以上是生活随笔為你收集整理的7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。