C語言 順序查詢和二分查詢

2021-08-04 08:22:11 字數 1144 閱讀 8712

任務**:

順序查詢元素:

#include #define size 10

int main()

; int index=-1;//如果末尾沒有找到,預設函式為=-1

int i,number;

printf("請輸入要查詢的資料:");

scanf("%d",&number);

//順序查詢

for(i=0;i0)

else

return 0;

}

二分查詢方法:

#include #define size 10

int main()

; int index=-1;//如果末尾沒有找到,預設函式為=-1

int i,key;

printf("請輸入要查詢的資料:");

scanf("%d",&key);

//二分查詢

/*二分查詢的前提是你所查詢的數字必須已經是會有序陣列!!!!*/

int low,high,mid;

low=0;//代表陣列第乙個數

high=size-1;//代表陣列最後乙個數

while(low<=high)//在沒有查詢到最後乙個數的情況下繼續執行

else

if(a[mid]>key)

else

}//輸出結果

if(index>0)

else

return 0;

}

執**況:

知識總結:

!!!!侷限性是,二分查詢必須針對有序的,無重複數列!!!!在使用的時候必須先將數列有序化,如果要技術出現次數必須使用其他演算法!

心得體會;

順序查詢和二分查詢

二分查詢 陣列裡查詢某個元素 search函式 其中 array為陣列,k為要找的值,low為查詢範圍的最小鍵值,high為查詢範圍的最大鍵值 function search array,k,low 0,high 0 if low high 如果還存在剩餘的陣列元素 elseif k array m...

順序查詢和二分查詢

1 順序查詢 又稱線性查詢,是從陣列的第乙個元素開始查詢,直到找到待查詢元素的位置。順序查詢適合於儲存結構為順序儲存或鏈結儲存的線性表。使用for迴圈等實現。int find int a,int x return index 2 二分查詢 二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能...

順序查詢和二分查詢

問題 寫出兩種檢索演算法 在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0.解析順序查詢 在乙個線性表中,按照從前往後或者從後往前的順序依次查詢,如果查詢到關鍵字和給定值相等,則返回給定值的位置,查詢成功 如果查詢值最後乙個元素仍未找到,則查詢失敗...