第十六天 分塊查詢

2021-07-11 03:40:00 字數 1017 閱讀 4862

題目 採用分塊查詢的方法查詢有序表,有序表個數為15,要求使用者輸入有序表各元素,程式輸出查詢結果,若成功,顯示出元素在有序表中的位置。

1、程式分析

step1先選取各塊中的最大關鍵字構成乙個索引表;

step2查詢分為兩個部分:先對索引表進行二分查詢或順序查詢,以確定待查記錄在哪一塊中;然後,在已確定的塊中用順序法進行查詢。

2、程式實現

/*宣告分塊查詢函式*/

int block_search(int ikey,int iarr);

/*定義塊的結構體*/

struct index

index_table[4]; //結構體陣列

/**********************************

*函式名稱:block_search

*引數說明:ikey 查詢的關鍵字

* iarr 有序數列儲存的陣列

*說明: 分塊查詢

***********************************/

int block_search(int ikey,int iarr)

if(i > 3) //當大於最大塊數的時候表明沒有查詢到,返回0

else

if(j > index_table[i].iend) //超出塊的範圍

return j;

}}void main(void)

printf("請輸入您要查詢的數字:");

scanf("%d",&ikey);

iret = block_search(ikey,iarr);

if(iret != 0)

printf("查詢成功,其位置是:%d\n",iret);

else

printf("查詢失敗!\n");

}

3、顯示結果

Python 第十六天

魔法方法總是被雙下劃線包圍 例如 init 注 魔法方法第乙個引數為cls 類方法 或者self 例項方法 其中 cls 代表乙個類名稱 self 代表乙個例項物件的名稱 基本方法 init self 構造器,當乙個例項被建立的時候呼叫的初始化方法 new cls 是在乙個物件例項化的時候所呼叫的第...

寒假第十六天

abs x 返回數字的絕對值,如abs 10 返回 10 ceil x 返回數字的上入整數,如math.ceil 4.1 返回 5 cmp x,y 如果 x y 返回 1,如果 x y 返回 0,如果 x y 返回 1 exp x 返回e的x次冪 ex 如math.exp 1 返回2.7182818...

python第十六天

一 包 1 什麼是包?一系列模組的集合 2 有什麼用?包通過資料夾來管理一系列功能相近的模組 3 包重點?包中一定有乙個專門用來管理包中所有模組的檔案 init 4 什麼是包名?包名是存放一系列模組的資料夾名字 5 包名有什麼用 包名 包物件 存放的是管理模組的那個檔案的位址,指向其全域性命名空間。...