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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

PAT甲级1145 Hashing - Average Search Time:[C++题解]哈希表、哈希表开放寻址法、二次探测法、求平均查找次数

發(fā)布時(shí)間:2025/4/5 c/c++ 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT甲级1145 Hashing - Average Search Time:[C++题解]哈希表、哈希表开放寻址法、二次探测法、求平均查找次数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 題目分析
    • 題目鏈接

題目分析



來源:acwing

本題的分析見另一道PAT的題目:PAT甲級(jí)1078 Hashing:[C++題解]哈希表、哈希表開放尋址法、二次探測(cè)法鏈接的題目就是讓建立hash表,沒有輸出查詢時(shí)間,所以是這道題的簡單版。

關(guān)于統(tǒng)計(jì)時(shí)間(即統(tǒng)計(jì)次數(shù)),也是放在了find()函數(shù)中,即插入的時(shí)候的比較次數(shù)就是查詢時(shí)候的次數(shù),所以在find函數(shù)中加了一個(gè)形參cnt用來統(tǒng)計(jì)次數(shù)。以便后面查詢輸出。

ac代碼

#include<bits/stdc++.h> using namespace std; const int N = 1e4+10;int s , m , n;int h[N]; bool is_prime(int n){if(n == 1) return false;for(int i =2; i<= n/i ;i++)if( n % i ==0) return false;return true; }//查找x在哈希表中的位置,cnt統(tǒng)計(jì)比較了多少次 int find(int x, int &cnt){//hash值int t = x %s;//統(tǒng)計(jì)插入多少次,即查找多少次cnt =1;//這里cnt包含特例:如果查找了 TSize 次,每次查找的位置上均有數(shù),但都不等于要查找的數(shù),則認(rèn)為查找時(shí)間是 TSize+1。for(int k =0; k<s; k++,cnt++){//尋找二次探測(cè)法的沖突解決位置int i = (t+ k*k) % s;//如果這個(gè)位置是空的 || 查詢到了這個(gè)數(shù),就返回這個(gè)位置iif(!h[i] || h[i] == x ) return i;}// 無法插入 或者 差不多就返回-1return -1; } int main(){cin >> s >> n >> m;while(!is_prime(s)) s++;//插入數(shù)字,建立hash表for(int i =0; i< n; i++){int x,cnt;cin >> x;int t = find(x, cnt);if(t == -1) printf("%d cannot be inserted.\n", x);else h[t] = x;}//查詢,統(tǒng)計(jì)比較次數(shù)int cnt = 0;for(int i= 0; i< m; i++){int x, count;cin >> x;find(x, count);cnt += count;}printf("%.1lf",(double)cnt/m); }

題目鏈接

PAT甲級(jí)1145 Hashing - Average Search Time
https://www.acwing.com/problem/content/1640/

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的PAT甲级1145 Hashing - Average Search Time:[C++题解]哈希表、哈希表开放寻址法、二次探测法、求平均查找次数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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