SDUT 3377 數據結構實驗之查找五:平方之哈希表

數據結構實驗之查找五:平方之哈希表

Time Limit:?400MS?Memory Limit:?65536KB
Submit?Statistic

Problem Description

給定的一組無重復數據的正整數,根據給定的哈希函數建立其對應hash表,哈希函數是H(Key)=Key%P,P是哈希表表長,P是素數,處理沖突的方法采用平方探測方法,增量di=±i^2,i=1,2,3,...,m-1

Input

輸入一組測試數據,數據的第1行給出兩個正整數N(N <= 500)和P(P >= 2N的最小素數),N是要插入到哈希表的元素個數,P是哈希表表長;第2行給出N個無重復元素的正整數,數據之間用空格間隔。

Output

按輸入數據的順序輸出各數在哈希表中的存儲位置 (hash表下標從0開始),數據之間以空格間隔,以平方探測方法處理沖突。

Example Input

4 11
10 6 4 15
9 11
47 7 29 11 9 84 54 20 30

Example Output

10 6 4 5
3 7 8 0 9 6 10 2 1

DQE:

哈希表平方探測法,注意Di序列各個元素通過i計算得到的關系,每次計算記得對p取余即可~

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 int n,p;
 5 
 6 int insert(int *f,int k)
 7 {
 8     int h=k%p;
 9     int i=1,j=h;
10     while(f[j]!=0&&f[j]!=k)
11     {
12         int t=(i+1)/2;
13         j=(h+t*t*(i%2==0?-1:1))%p;
14         i++;
15     }
16     f[j]=k;
17     return j;
18 }
19 
20 int main()
21 {
22     while(scanf("%d %d",&n,&p)!=EOF)
23     {
24         int hash[1011]={0};
25         int i,k;
26         for(i=0;i<n;i++)
27         {
28             scanf("%d",&k);
29             printf("%d%c",insert(hash,k),i==n-1?'\n':' ');
30         }
31     }
32     return 0;
33 }
34 
35 /***************************************************
36 User name: ***
37 Result: Accepted
38 Take time: 0ms
39 Take Memory: 152KB
40 Submit time: 2016-12-03 13:06:06
41 ****************************************************/

轉載于:https://www.cnblogs.com/Leroscox/p/6128567.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255836.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

我的2017年前端之路總結

原文首發于我的博客 年末了&#xff0c;趕著剛考完兩門考試&#xff0c;在最后4門考試來臨之前抽空寫一下今年的小結。 今年格外忙。忙完本科畢設&#xff0c;又馬上投入了研究生實驗室的搬磚生涯。跟去年一樣&#xff0c;列個今年的學習成果清單&#xff1a; 過去的一年 技術成…

對軟件工程的疑問

在大學時光中學習了算法編程后&#xff0c;我發現我對于源程序理解很差&#xff0c;我只會很低程度的寫代碼&#xff0c;但是基本描述不出來。所以我的編程很差&#xff0c;而且由于我很少打代碼&#xff0c;所以我的編程能力基本沒有多少提高&#xff0c;我也沒有發現該學什么…

【深度學習】——分類損失函數、回歸損失函數、交叉熵損失函數、均方差損失函數、損失函數曲線、

目錄 代碼 回歸問題的損失函數 分類問題的損失函數 1、 0-1損失 (zero-one loss) 2、Logistic loss 3、Hinge loss 4、指數損失(Exponential loss) 機器學習的損失函數 Cross Entropy Loss Function&#xff08;交叉熵損失函數&#xff09; 交叉熵優點 Mean Squared E…

伺服電機慣量問題

在伺服系統選型及調試中&#xff0c;常會碰到慣量問題。 其具體表現為&#xff1a;在伺服系統選型時&#xff0c;除考慮電機的扭矩和額定速度等等因素外&#xff0c;我們還需要先計算得知機械系統換算到電機軸的慣量&#xff0c;再根據機械的實際動作要求及加工件質量要求來…

【轉】應用架構一團糟?如何將單體應用改造為微服務

概述 將單體應用改造為微服務實際上是應用現代化的過程&#xff0c;這是開發者們在過去十年來一直在做的事情&#xff0c;所以已經有一些可以復用的經驗。 全部重寫是絕對不能用的策略&#xff0c;除非你要集中精力從頭構建一個基于微服務的應用。雖然聽起來很有吸引力&#xf…

Linux 解決ssh連接慢的問題

備份文件 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 編輯文件 vi /etc/ssh/sshd_config 輸入/ 查找GSSAPIAuthentication 設置如下 GSSAPIAuthentication no # 是否允許使用基于 GSSAPI 的用戶認證。默認值為"no"。僅用于SSH-2 詳細解釋 輸入/ 查找UseDNS …

ABB機器人與PC計算機控制口連接 超級終端 命令清單

條件&#xff1a; 9 針串口通信 RS232。 PC 啟動超級終端軟件。Windows -> Start -> Accessories -> Terminal 通信設置&#xff1a; 1. 波特率 9600 8 位2. 1 個停止位 沒有奇偶校驗3. 沒有 Modern 采用直接串口連接4. 使用 Xon/Xoff 通信形式當故障發生時&#xff0…

【Hibernate】Hibernate系列6之HQL查詢

HQL查詢 6.1、概述 6.2、分頁查詢 6.3、命名查詢 6.4、投影查詢-部分字段查詢 6.5、報表查詢 6.6、迫切左外連接、左外連接 6.7、迫切內連接、內連接 6.8、QBC查詢、本地查詢 轉載于:https://www.cnblogs.com/junneyang/p/5254641.html

【深度學習】——梯度下降優化算法(批量梯度下降、隨機梯度下降、小批量梯度下降、Momentum、Adam)

目錄 梯度 梯度下降 常用的梯度下降算法&#xff08;BGD&#xff0c;SGD&#xff0c;MBGD&#xff09; 梯度下降的詳細算法 算法過程 批量梯度下降法&#xff08;Batch Gradient Descent&#xff09; 隨機梯度下降法&#xff08;Stochastic Gradient Descent&#xff09…

Javascript隱式轉換

亂想 javascript為什么需要隱式轉換&#xff1f;如果沒有會出現什么情況&#xff1f; 找了一圈沒有看到關于這個的討論&#xff0c;只好自己研究了&#xff0c;可能不一定正確&#xff0c;自行辨知。 郁悶就是郁悶在好好的&#xff0c;為什么要搞個隱式轉換&#xff0c;一般來講…

雙工位機器人 焊接夾具注意事項 o(╯□╰)o

焊接夾具設計注意事項 一套完美的夾具,需要機械設計人員正確的設計思想&#xff0c;良好的配件質量&#xff0c;鉗工負責認真的裝配質量,卡具在使用中不斷的修磨和改進&#xff0c;才會達到好的效果。 本人非機械設計&#xff0c;只是在使用焊接卡具過程中遇到了很多卡具設計上…

【公共類庫】加密解密

public static class MyEncryption{#region Md5加密/// <summary>/// 使用MD5加密/// </summary>/// <param name"str">需要加密的數據。</param>/// <param name"kind">加密類型&#xff1a;1-普通加密&#xff1b;2-密碼加…

使用JOTM實現分布式事務管理(多數據源)

使用spring和hibernate可以很方便的實現一個數據源的事務管理,但是如果需要同時對多個數據源進行事務控制,并且不想使用重量級容器提供的機制的話,可以使用JOTM達到目的. JOTM的配置十分簡單,spring已經內置了對JOTM的支持,一.<bean id"jotm" class"org.spri…

【機器學習】——《機器學習實戰》面試復習

目錄 一、機器學習概念 二、機器學習步驟 三、有監督學習 1、k-近鄰算法 核心思想 實例&#xff1a;手寫數字的識別 優缺點&#xff1a; 2、決策樹 相關概念 核心思想 一些小技巧 優缺點 3、神經網絡 4、SVM——支持向量機 核心思想 SVM和SVR的區別 ? 優缺點…

一鍵分享代碼

文章出處&#xff1a;http://share.baidu.com/code/advance 一、概述 百度分享代碼已升級到2.0&#xff0c;本頁將介紹新版百度分享的安裝配置方法&#xff0c;請點擊左側列表查看相關章節。 二、代碼結構 分享代碼可以分為三個部分&#xff1a;HTML、設置和js加載&#xff0c;…

ubuntu安裝LDAP

參考文獻&#xff1a; https://help.ubuntu.com/12.04/serverguide/openldap-server.html&#xff08;最主要的&#xff09; http://www.linuxidc.com/Linux/2011-08/40020.htm http://blog.chinaunix.net/uid-24276740-id-3360306.html 前言 在網上搜索ldap的安裝配置&#xf…

58.貪心算法練習:??最小新整數

總時間限制: 1000ms 內存限制: 65536kB 描述 給定一個十進制正整數n(0 < n < 1000000000)&#xff0c;每個數位上數字均不為0。n的位數為m。現在從m位中刪除k位(0< m)&#xff0c;求生成的新整數最小為多少&#xff1f;例如: n 9128456, k 2, 則生成的新整數最小…

ABB機器人之LOADDATA

ABB機器人之LOADDATA loaddata是用來描述連接到機器人機械接口的負載&#xff08;機器人的安裝法蘭&#xff09;。loaddata數據通常定義有效載荷或負荷&#xff08;通過指令gripload設置機器人抓手負載 或mechunitload指令設置變位機負載。loaddata通常也作為tooldata的一部分&…

【深度學習】——性能指標(ROC、MAP、AUC等)

目錄 一、分類任務性能指標 1、混淆矩陣 2、精確度ACCURACY 正確數/總數 3、查全率&#xff08;RECALL&#xff09;——真正正樣本中預測正確的比例 4、查準率&#xff08;precision&#xff09;——預測為正樣本中的預測正確的比例 5、F-score——對查準率和查全率進行結…

【深度學習】——過擬合的處理方法

目錄 一、什么是過擬合&#xff1f;&#xff08;overfitting&#xff09; 二、過擬合的表現&#xff08;判定方法&#xff09; 訓練集、測試集、驗證集區別 測試集與驗證集的區別 三、產生過擬合的原因 1、樣本方面 2、模型方面 四、避免過擬合的方法 1、樣本方面 1&…