一片儲存空間的中的資料既可能是有序的、也可能是無序的,有序可以是公升序、降序、分塊公升序等等
對於無序存放的陣列只能通過順序查詢的方法找到想要的資料
順序查詢就是從資料空間的一端到另一端,逐個資料進行比對,直至找到想要的資料
按照這種說法,最終可能出現兩種情況:①找到元素,②找不到,超出邊界
這樣每次需要判斷兩個條件,對於順序表,可以設定乙個哨兵,即將陣列的首(或尾)空間空出來,平時不存放資料,查詢的時候用來存放需要查詢的資料,這樣就不需要再頻繁判斷是否超出查詢邊界,減少查詢時間
對於鍊錶,如果資料量極大,也可以建立乙個哨兵節點以節省時間,若資料量較小,則會延長查詢時間
無哨兵順序表順序查詢:
int orderfind(int ix, int *aiarray, int isize)
有哨兵順序表順序查詢:
int orderfind(int ix, int *aiarray, int isize)
鍊錶順序查詢:
pt_list orderfind(int ix, pt_list pthead)
資料結構 順序(線性)查詢(演算法)
概述 例項 獲取查詢到的第乙個元素的位置 param array 陣列 param value 要查詢的值 return 查詢到,返回index,未查找到返回 1 private static intlinearsearchfirstvalue int array,int value for int...
資料結構 順序查詢
5.小結 include include define initsize 10 初始化陣列長度 define elemtype int 順序查詢表型別定義 順序表 動態分配 typedef struct sstable 函式宣告 void inittable sstable st 1.初始化順序表 ...
資料結構與演算法之查詢演算法一 順序查詢
問題 在已知序列中找出與給定關鍵字相同的數的具體位置。解決方案 讓關鍵字與佇列中的數從第乙個開始逐個比較,直到找到與給定關鍵字相同的數為止。輸入 序列 71 23 56 85 17 29 93 64 39 49 輸出 若找到,則輸出查詢到的元素 位置和查詢次數 否則輸出 對不起,沒有這個數!如下 f...