任務**:
順序查詢元素:
#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.解析順序查詢 在乙個線性表中,按照從前往後或者從後往前的順序依次查詢,如果查詢到關鍵字和給定值相等,則返回給定值的位置,查詢成功 如果查詢值最後乙個元素仍未找到,則查詢失敗...