YTU oj3386
生活随笔
收集整理的這篇文章主要介紹了
YTU oj3386
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
根據給定的一系列整數關鍵字和素數p,用除留余數法定義hash函數H(Key)=Key%p,將關鍵字映射到長度為p的哈希表中,用線性探測法解決沖突。重復關鍵字放在hash表中的同一位置。
#include<stdio.h> void insert_hash(int arr[],int tmp,int lenth) {int i=tmp%lenth;while(arr[i]!=0&&arr[i]!=tmp){i++;//而且,要注意:這個循環的技巧,必須是先i++,再取余。i%=lenth;}arr[i]=tmp; }int search_hash(int arr[],int tmp,int lenth) {int i=tmp%lenth;while(arr[i]!=tmp)//這個循環要注意,應該先i++,再取余。{i++;i%=lenth; //真神奇!要是把i++放到取余的后面,程序就死循環了。}return i; }int main() {int n,p;scanf("%d %d",&n,&p);int i,arr[1000]={0},tmp[1000];int index;for(i=0;i<n;i++){scanf("%d",&tmp[i]);insert_hash(arr,tmp[i],p);}for(i=0;i<n;i++){index=search_hash(arr,tmp[i],p);printf("%d",index);if(i!=n-1) printf(" ");}return 0; }總結
以上是生活随笔為你收集整理的YTU oj3386的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用docker搭建sqli-lab环境
- 下一篇: 如何删除下一页分节符_页面布局里分节符添