為了演示方便,順序查詢和折半查詢的資料儲存結構就直接採用陣列。
1、順序查詢
順序查詢跟我們用迴圈遍歷進行暴力破解類似。。
直接看**:
#define n 11
//順序查詢(適用於線性表)
intseq_search
(int
*arr,
int key)
對,順序查詢就是這麼簡單。。。
2、折半查詢(二分查詢)
折半查詢僅適用於有序的順序表
思路:具體實現:
//折半查詢(二分查詢),適用於有序的順序表
intbinary_search
(int
*arr,
int key)
return-1
;//查詢失敗
}
注意這裡迴圈的終止條件是low<=high;接下來,我們可以在main()函式中測試一下:
int
main()
;if(seq_search
(arr1,4)
!=0)printf
("4元素下標為:%d\n"
,seq_search
(arr1,4)
);else
printf
("該元素不存在!\n");
int arr2[n]=;
if(binary_search
(arr2,4)
!=-1)
printf
("4元素下標為:%d\n"
,binary_search
(arr2,4)
);else
printf
("該元素不存在!\n");
return0;
}
測試結果:
積一時之跬步,臻千里之遙程。
C語言 資料結構查詢 順序查詢及折半查詢
資料結構查詢 順序查詢和折半查詢 順序查詢 思路 從表中最後乙個記錄開始,逐個進行記錄的關鍵字和 給定值的比較,若某個記錄的關鍵字和給定值比較相等,則 返回返回記錄所在的位置,或查詢完所有記錄後還沒有發現 符合的記錄,則查詢失敗。include include include include def...
資料結構之查詢 二 順序查詢
順序表的表示 資料元素型別定義 typedef struct elemtype 順序表定義 typedef struct sstable sstable st 定義順序表st int search seq sstable st,keytype key int search seq sstable s...
演算法與資料結構之順序查詢(C語言)
1 include2 include3 順序查詢基本思想 從線性表的一端開始,逐個檢查關鍵字是否滿足給定的條件 4int sequentialsearch int a,int n,int x 5 6int main void 7 9intnum,結果 10 printf 請輸入要查詢的數 11 sc...