數(shù)據(jù)結(jié)構(gòu)與算法——二分查找和索引查找算法 實驗報告及代碼

實驗?zāi)康募耙?/b>

熟練掌握二分查找和索引查找算法

實驗原理

查找算法的實現(xiàn)

實驗環(huán)境(使用的軟件)

Visual?studio?2019

實驗方案設(shè)計

(1) 二分查找算法的實現(xiàn)

(2) 索引查找算法的實現(xiàn)

實驗過程

源.cpp

#include<iostream>

using namespace std;

typedef int keytype;

struct datatype

{

keytype key;

};

int BiSeach(datatype a[], int n, keytype key)

//在有序表a[0]--a[n-1]中二分查找關(guān)鍵碼為key的對象

//查找成功時返回該對象的下標(biāo)序號猫十;失敗時返回-1

{

int low = 0, high = n - 1, mid;

while (low <= high)

{

mid = (low + high) / 2;

if (a[mid].key == key) return mid;

else if (a[mid].key < key) low = mid + 1;

else high = mid - 1;

}

return -1;

}

typedef struct

{

keytype Key;

} elemtype;

typedef struct

{

keytype Key;

int Link;

} indextype;

int IndexSequelSearch(indextype ls[], elemtype s[], int m, int l, keytype Key)

/*分塊查找關(guān)鍵字為Key的記錄倒淫。索引表為ls[0]--ls[m-1], 順序表為s, 塊長為l*/

{

int i, j;

/*在索引表中順序查找*/

i = 0;

while (i < m && Key > ls[i].Key) i++;

if (i >= m) return -1;

else

{

/*在順序表中順序查找*/

j = ls[i].Link;

while (Key != s[j].Key && j - ls[i].Link < l)? j++;

if (Key == s[j].Key) return j;

else return -1;

}

}

int main()

{

datatype test[] = { 2,3,5,7,9,11,13,15,17,20 };

int n = 10, key = 11, i;

cout << "二分查找" << endl;

if ((i = BiSeach(test, n, key)) != -1)

cout << "查找成功! 該對象為第" << i << "個對象";

else? cout << "查找失敗! 該對象在對象集合中不存在";

cout << endl;

indextype ls[5] = { {14,0},{34,5},{66,10},{85,15},{100,20} };

elemtype Test[25] = { 8,14,6,9,10,22,34,18,19,31,40,38,54,66, 46,71,78,68,80,85,100,94,88,96,87 };

int m = 5, l = 6, Key = 87, u;

cout << "索引查找" << endl;

u = IndexSequelSearch(ls, Test, m, l, Key);

if (u != -1) cout << "查找成功窘行!該數(shù)據(jù)元素為第 %d 個記錄" << u << endl;

else cout << "n查找失旜晔邸汇荐!該數(shù)據(jù)元素在記錄集合中不存在" << endl;

return 0;

}

結(jié)論(結(jié)果)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狂丝,一起剝皮案震驚了整個濱河市管嬉,隨后出現(xiàn)的幾起案子地技,更是在濱河造成了極大的恐慌袁翁,老刑警劉巖柴底,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粱胜,居然都是意外死亡柄驻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門年柠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凿歼,“玉大人,你說我怎么就攤上這事冗恨〈疸荆” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵掀抹,是天一觀的道長虐拓。 經(jīng)常有香客問我,道長傲武,這世上最難降的妖魔是什么蓉驹? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任城榛,我火速辦了婚禮,結(jié)果婚禮上态兴,老公的妹妹穿的比我還像新娘狠持。我一直安慰自己,他們只是感情好瞻润,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布喘垂。 她就那樣靜靜地躺著,像睡著了一般绍撞。 火紅的嫁衣襯著肌膚如雪正勒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天傻铣,我揣著相機(jī)與錄音章贞,去河邊找鬼。 笑死非洲,一個胖子當(dāng)著我的面吹牛鸭限,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怪蔑,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼里覆,長吁一口氣:“原來是場噩夢啊……” “哼丧荐!你這毒婦竟也來了缆瓣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤虹统,失蹤者是張志新(化名)和其女友劉穎弓坞,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體车荔,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡渡冻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忧便。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族吻。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖珠增,靈堂內(nèi)的尸體忽然破棺而出超歌,到底是詐尸還是另有隱情,我是刑警寧澤蒂教,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布巍举,位于F島的核電站,受9級特大地震影響凝垛,放射性物質(zhì)發(fā)生泄漏懊悯。R本人自食惡果不足惜蜓谋,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炭分。 院中可真熱鬧桃焕,春花似錦、人聲如沸捧毛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岖妄。三九已至型将,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荐虐,已是汗流浹背七兜。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留福扬,地道東北人腕铸。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像铛碑,于是被迫代替她去往敵國和親狠裹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容