題目 採用分塊查詢的方法查詢有序表,有序表個數為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 包名有什麼用 包名 包物件 存放的是管理模組的那個檔案的位址,指向其全域性命名空間。...