停課不停學
我們在努力
齊心協力,一起抗疫
查詢演算法
查詢是在乙個含有眾多資料元素的集合中找到給定的特定資料元素的操作。例如,在檔案列表中找到特定檔案,或者是在資料表中找到特定的值。
查詢演算法——順序查詢
021.1 順序查詢
順序查詢就是從資料序列中的第乙個元素開始逐個查詢,直到找到所要的資料或搜尋完整個資料序列。在程式執行時輸入陣列並輸入想要查詢的數,程式自動找出要查詢的數字於陣列中的位置。
查詢演算法——順序查詢
03演算法說明
執行順序查詢程式,根據提示輸入陣列和要查詢的關鍵字,程式輸出想要查詢的數在陣列中的位置。執行結果如圖所示。
查詢演算法——順序查詢
04演算法分析
順序查詢是在-乙個已知無序佇列中找出與給定關鍵字相同的數的具體位置。原理是讓關鍵字與佇列中的數從第乙個開始逐個比較,直到找出與給定關鍵字相同的數或者搜尋完整個資料列為止。定義乙個陣列a[10]接收資料列、乙個變數x接收要查詢的數和乙個函式search)用來執行查詢的過程,最後輸出要查詢的數在陣列中的位置n。
順序查詢的基本思想是從表的一端開始,順序掃瞄線性表,依次將掃瞄到的結點、關鍵字和給定值k相比較,若當描到的結點與k相等,則查詢成功;若掃瞄結束後仍未找到等於k的結點,則查詢失敗。
順序查詢的儲存結果要求:順序查詢演算法既適用於線性表的順序儲存結構,也適用於線性表的鏈式儲存結構,但使用單鏈表作為儲存結構時,掃瞄必須從第一-個結點開始。
順序查詢的儲存結果要求:順序查詢演算法既適用於線性表的順序儲存結構,也適用於
線性表的鏈式儲存結構,但使用單鏈表作為儲存結構時,掃瞄必須從第乙個結點開始。
順序查詢的優點:演算法簡單且對錶的結構無任何要求。無論是用向量還是用鍊錶來存放結點,而且不管結點之間是否有序,它都同樣適用。
順序查詢的缺點:查詢效率低。因此,當資料量較大時不宜採用順序查詢。
使用順序查詢演算法查詢資料,最理想的情況是比較一次 就能夠找到目標資料,最差的情況;是需要比較完所有的(n個) 資料後才能找到目標資料,平均比較次數為n/2次。
查詢演算法——順序查詢
05實現過程
本程式實現過程如下:
(1)啟動microsoft visual c++ 6.0。
(2)選擇file/new選單項,在彈出的對話方塊裡選擇files(c++ source file選項,填寫檔名,設定儲存路徑,單擊ok按鈕。
(3)編寫程式**。
對被調函式進行宣告**如下:
int search(int a,int y,int x);
/*對自定義的麗數search進行宣告*/
定義變數的程式**如下:
int i,x,n;
/*變數定義*/
int a[10];
陣列元素的接收和關鍵字的接收程式**如下:
printf("請輸入10個數字! \n");
for(i=0;i<10;i++)
scanf("%d" ,&a[i]);
/*接收輸入的陣列*/
printf("請輸入要查詢的數: ")
scanf("%d",&x);
/*接收關鍵字*/
輸出要查詢的數的位置,程式**如下:
if(n<0)
/*輸出要查詢的數的位置*/
printf("沒找到您要找的數,您要找的數可能不在陣列中。\n");
else
printf("您要找的數%d在陣列中第%d個元素處。\n",x,n);
被調函式程式**如下:
int search(int a,int y,int x)
/*被呼叫的函式search()*/
return(f);
}
查詢演算法 順序查詢
又叫線性查詢 我們來看乙個題目 科大有學生成績分布如下 1,8,10,89,1000,1234 要求 判斷數列是否包含某個特定的值 這裡我就不舉例 直接在題目中展示 找到了就返回值以及下標 順序查詢演算法 author 王 public class seqsearch 無序的陣列 int index...
查詢演算法 順序查詢
python 和 golang 實現 linear search 順序查詢 從列表的第乙個元素開始,按照順序對列表進行搜尋,找到待查詢的元素就返回其下標,找不到就返回none或 1 pythondef linear search data list,value for i in range 0,le...
查詢演算法之順序查詢
演算法思想 順序查詢演算法是一種較為簡單的演算法,它把待查詢的所有序列元素都遍歷一遍,直到查詢到該關鍵字為止。時間複雜度最壞的情況下為o n 時間複雜度最好的情況下為o 1 順序查詢演算法實現 author qiu public class ordersearch 待查詢陣列 int key 8 待...