欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

【自學筆記001】哈希表(一)-創(chuàng)新互聯(lián)

印象

一個下標由整數(shù)、浮點數(shù)甚至字符串、結構體構成的“數(shù)組”。

專業(yè)網(wǎng)站建設公司網(wǎng)站可以采用ASP、PHP、.NET編程語言及配備的SQL SERVER、MYSQL、ACCESSS數(shù)據(jù)庫存儲來整體開發(fā)及設計各類型大中型網(wǎng)站(包括:公司、行業(yè)門戶、醫(yī)院門戶、商城、政府門戶、音樂、視頻、交友、各行業(yè)網(wǎng)站等各種類型網(wǎng)站),我們可以提供從網(wǎng)站開發(fā)、網(wǎng)站設計、網(wǎng)站安全維護及網(wǎng)站托管和網(wǎng)絡推廣一條龍服務。打造高端企業(yè)網(wǎng)站設計公司,網(wǎng)站開發(fā)周期短,質(zhì)量有保證,設計精美,價格合理。哈希函數(shù)——對應關系的產(chǎn)生

示例

· 對每一個key,通過映射f得到f(key)作為鍵值對(key, value)的索引,即鍵值對存放在arr[f(key)]上。
例如:將長度為n的字符串s轉(zhuǎn)換為:x = s0· 1270+ s1· 1271+ ··· + sn· 127n,x對264取模得到索引。

哈希沖突

即不同的鍵值轉(zhuǎn)換后得到相同索引的情況。

解決方案一:開散列法

將同一個索引處的多個(key, value)用鏈表儲存,查詢時需要掃描整個鏈表。注意,每個存放數(shù)據(jù)的地方都會開一個鏈表。c++代碼如下:

const int SIZE = 1000000;
const int M = 999997;
struct HashTable
{//數(shù)組模擬鏈表
	struct Node
	{int next, value, key;
	} data[SIZE];
// head[M] 存放 f(key)=M 的第一個節(jié)點在 data 數(shù)組里的下標,即頭結點的下標
	int head[M], size;
//哈希函數(shù)
	int f(int key) {return key % M; }
//查找
	int get(int key)
	{for (int p = head[f(key)]; p; p = data[p]next)
			if (data[p].key == key) return data[p].value;
			return -1;
	}
//修改
	int modify(int key, int value)
	{for (int p = head[f(key)]; p; p = data[p]next)
			if (data[p].key == key) return data[p].value = value;
	}
//添加
	int add(int key, int value)
	{//判斷鍵值對是否已經(jīng)存儲過
		if (get(key) != -1) return -1;
		data[++size] = (Node){head[f(key), value, key};
		head[f(key)] = size;
		return value;
	}
};

另一種封裝好的模板代碼如下:

struct hash_map
{//前向星結構
	struct data
	{long long u;
		int v, nex;
	};
	data e[SZ<< 1];  // SZ 是 const int,表示大小
	int h[SZ], cnt;  //cnt記錄當前e中存入鍵值對的個數(shù)
//哈希函數(shù),用 (u % SZ + SZ) % SZ 是為了將結果轉(zhuǎn)化為正數(shù)
	int hash(long long u) {return (u % SZ + SZ) % SZ; }
//查找,若找到則返回value,否則返回-1(不太懂這個函數(shù)的語法)
	int& operator[](long long u)
	{int hu = hash(u);  
		for (int i = h[hu]; i; i = e[i].nex)
			if (e[i].u == u) return e[i].v;
		return e[++cnt] = (data){u, -1, h[hu]}, h[hu] = cnt, e[cnt].v;
}
	hash_map()
	{cnt = 0;
		memset(h, 0, sizeof(h));
	}
};
解決方案二:閉散列法

把所有記錄直接存儲在散列表中,如果發(fā)生沖突則用某種方法(如線性探查法)繼續(xù)探查。代碼如下:

const int N = 360007;

class Hash
{private:
		int keys[N];
		int values[N];
	public:
		Hash() {memset(values, 0, sizeof(values)); }
		int& operator[](int n)
		{	int idx = (n % N + N) % N, cnt = 1;
			while (keys[idx] != n && values[idx] != 0)
			{		idx = (idx + cnt * cnt) % N;
				++cnt;
			}
			keys[idx] = n;
			return values[idx];
		}
	};

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:【自學筆記001】哈希表(一)-創(chuàng)新互聯(lián)
當前網(wǎng)址:http://chinadenli.net/article14/epede.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、做網(wǎng)站網(wǎng)站建設、品牌網(wǎng)站建設、網(wǎng)站策劃建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲中文字幕一区三区| 老司机精品福利视频在线播放| 久草视频这里只是精品| 精品少妇人妻av免费看| 大香蕉大香蕉手机在线视频| 亚洲永久一区二区三区在线| 色婷婷视频在线精品免费观看| 国产美女网红精品演绎| 亚洲天堂有码中文字幕视频| 午夜激情视频一区二区| 亚洲综合一区二区三区在线| 好吊妞视频这里有精品| 婷婷伊人综合中文字幕| 精品人妻av区波多野结依| 91插插插外国一区二区| 亚洲欧美日本视频一区二区| 久久99爱爱视频视频| 激情五月天免费在线观看| 亚洲综合伊人五月天中文| 黑人粗大一区二区三区| 欧美一区二区在线日韩| 国产精品伦一区二区三区在线 | 欧美熟妇一区二区在线| 亚洲一区二区精品免费| 在线观看欧美视频一区| 亚洲视频偷拍福利来袭| 成年男女午夜久久久精品| 东京热一二三区在线免| 日韩欧美高清国内精品| 日木乱偷人妻中文字幕在线| 沐浴偷拍一区二区视频| 国产一级不卡视频在线观看| 亚洲乱妇熟女爽的高潮片| 日本人妻丰满熟妇久久| 国产又猛又大又长又粗| 青青操视频在线播放免费| 欧美国产日本免费不卡| 国产欧美日韩在线精品一二区| 一区二区三区人妻在线| 在线观看中文字幕91| 国产精品久久香蕉国产线|