二分查詢演算法及其改寫(C 實現)

2021-08-31 18:21:21 字數 459 閱讀 3762

二分查詢演算法是利用分治策略的典型例子。

設a[0:n-1]是已排好序的陣列,在這n個元素中找出一特定元素x。

int binarysearch(int a,int x,int n)

return -1;

}

二分查詢改寫:設a[0:n-1]是已排好序的陣列。要求使得當搜尋元素x不在陣列中時,返回小於x的最大元素位置i和大於x的最小元素位置j。當搜尋元素在陣列中時,i和j相同,均為x在陣列中的位置。

**如下:

int binarysearch(int a,int x,int n)

i=right;

j=left;

cout<時間複雜度:

最壞情況下while迴圈執行o(logn)次,所以最壞情況下時間複雜度為o(logn)。

C 改寫二分搜尋演算法

設a 0 n 1 是已排好序的陣列,請改寫二分搜尋演算法,使得當x不在陣列中時,返回小於x的最大元素位置i和大於x的最小元素位置j。當搜尋元素在陣列中時,i和j相同,均為x在陣列中的位置。輸入格式 輸入有兩行 第一行是n值和x值 第二行是n個不相同的整數組成的非降序序列,每個整數之間以空格分隔。輸出...

C 實現二分查詢演算法

想必二分查詢很多人都不陌生,或許說很熟悉,但是在實際生活中又有很多人不能正確的寫出它的相應 因為二分查詢的邊界條件等很難控制,下面我們來仔細的分析一下二分查詢,這只是個人看法,如有異議,歡迎提出。1 二分查詢可以解決的問題 二分查詢可以解決預排序陣列的查詢問題。只要陣列中包含t 即要查詢的值 那麼通...

二分查詢演算法C 實現

二分法查詢的前提是 陣列是有序的 二分查詢演算法是在有序陣列中用到的較為頻繁的一種演算法,在未接觸二分查詢演算法時,最通用的一種做法是,對陣列進行遍歷,跟每個元素進行比較,其時間為o n 但二分查詢演算法則更優,因為其查詢時間為o lgn 譬如陣列,查詢元素36,用二分查詢的演算法執行的話,其順序為...