資料結構 之二分法查詢

2021-07-22 20:06:44 字數 868 閱讀 2113

二分法查詢

二分法查詢是有一定條件的:**等如下,

/*對於二分法查詢有乙個最重要的條件就是必須是已經排好序的陣列;

資料查詢成功返回序列號,否則返回-1*/

#include int diguifa(int *a,int key,int low,int high);

int feidigui(int *a,int key,int n);

int main(int argc,char *argv)

; int key=0;//查詢資料關鍵字

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

scanf("%d",&key);

printf("遞迴查詢結果:%d\n",diguifa(a,key,0,sizeof(a)/sizeof(a[0])));

printf("非遞迴查詢資料輸入:");

scanf("%d",&key);

printf("遞迴查詢結果:%d\n",feidigui(a,key,sizeof(a)/sizeof(a[0])));

return 0;

}int diguifa(int *a,int key,int low,int high) //遞迴法實現二分法

if(a[mid]==key)

return mid;

else return -1;

}

二分法時間複雜度與空間複雜度。:

1.最壞情況查詢最後乙個元素(或者第乙個元素)t(n)=t(n/2)+o(1)所以t(n)=o(logn)

2.最好情況查詢中間元素o(1)查詢的元素即為中間元素(奇數長度數列的正中間,偶數長度數列的中間靠左的元素)

空間複雜度:

s(n)=n

二分法查詢資料

首先你儲存的資料內容必須是有序的 其次找到中間值 然後將你想要的查詢的值進行對比 如果比他大就去右邊尋找 反之就往左邊尋找 public static void main string args scanner b newscanner system.in system.out.println 請輸...

資料結構與演算法 二分法查詢

資料結構與演算法 二分法查詢 查詢的陣列必須是有序的 可以和氣泡排序合起來用 使用二分法查詢能提高查詢效率 每次查詢砍掉一半的資料量,2 n 資料量,n就是二分法查詢的次數 普通二分法查詢,返回索引 lst 0 1,2 3,4 5,6 7,8 9,10 11,12 13,14 15,16 17,18...

20 資料結構 二分法查詢(筆記)

搜尋是在乙個專案集合中找到乙個特定專案的演算法過程。搜尋通常的答案是真的或假的,因為該專案是否存在。搜尋的幾種常見方法 順序查詢 二分法查詢 二叉樹查詢 雜湊查詢。二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經...