YTU oj3386
生活随笔
收集整理的這篇文章主要介紹了
YTU oj3386
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
根據(jù)給定的一系列整數(shù)關(guān)鍵字和素?cái)?shù)p,用除留余數(shù)法定義hash函數(shù)H(Key)=Key%p,將關(guān)鍵字映射到長度為p的哈希表中,用線性探測法解決沖突。重復(fù)關(guān)鍵字放在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++;//而且,要注意:這個(gè)循環(huán)的技巧,必須是先i++,再取余。i%=lenth;}arr[i]=tmp; }int search_hash(int arr[],int tmp,int lenth) {int i=tmp%lenth;while(arr[i]!=tmp)//這個(gè)循環(huán)要注意,應(yīng)該先i++,再取余。{i++;i%=lenth; //真神奇!要是把i++放到取余的后面,程序就死循環(huán)了。}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; }總結(jié)
以上是生活随笔為你收集整理的YTU oj3386的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用docker搭建sqli-lab环境
- 下一篇: 如何删除下一页分节符_页面布局里分节符添