順序查詢 折半查詢

2022-07-16 05:00:20 字數 1268 閱讀 2247

順序查詢

基本流程:從線性表的一端開始,逐一查詢滿足條件的線性表元素,有則返回元素位置資訊,無則返回錯誤資訊。

#include using namespace std;

int seq_search(int arr, int len, int key)

}return -1;

}int main()

; int num = 6; //可以改為鍵盤輸入,這裡就不用了

int len = sizeof(arr)/sizeof(int);

int result = seq_search(arr, len, num);

if(result != -1)

else

return 0;

}

順序查詢引入「哨兵」

將陣列arr中的末尾(或者首位)元素設定為需要查詢的那個值,使得在迴圈過程中,不需要再判斷陣列下標是否越界。

#include using namespace std;

int seq_search(int arr, int key)

return i;

}int main()

int num = 6; //可以改為鍵盤輸入,這裡就不用了

int result = seq_search(arr, num);

if(result != 7)

else

return 0;

}

折半查詢

折半查詢也叫二分查詢,用於有序的順序表。

基本流程是:首先將需要查詢的值key與表中間位置元素比較。如果相等,則查詢成功並返回儲存位置。如果不等,則根據比較資訊,將接下來需要查詢的區間定位在前半或後半部分,再在相應的部分繼續進行以上操作。如此重複直到找到或返回錯誤資訊。

#include using namespace std;

int bin_search(int arr, int len, int key)

else if(arr[mid] > key)

else

}return -1;

}int main()

; int result = bin_search(arr, sizeof(arr)/sizeof(int), 4);

if(result == -1)

else

return 0;

}

順序查詢與折半查詢

includeusing namespace std const int max 10 順序查詢 int seqsearch1 int r,int n,int k return i 返回元素在陣列中的下標即元素的序號 int seqsearch2 int a,int n,int x 陣列a,n總數,...

順序查詢和折半查詢

順序查詢可以是線性表也可以是鍊錶,同是既可以是有序的也可以是無序。折半查詢僅適用於有序的線性表 include include define elemtype inttypedef struct sstable 表的資料結構 void creatss sstable st 建立線性表 void pr...

靜態查詢(順序查詢和折半查詢)

聽說過一句話,程式設計之久,除了資料結構和演算法什麼也不屬於我們。為了更好的學習資料結構和演算法,今天決定先把清華大學出版的資料結構 c語言版 書中的演算法實現一遍。現在開始第一彈。貴在堅持。順序查詢 演算法描述 include include 順序表的查詢 define eq a,b a b de...