二分查詢的遞迴和非遞迴

2021-09-01 07:45:04 字數 466 閱讀 4983

二分查詢,這個適用於已經排序好了的陣列,沒有排序那就先排序,不過要根據實際的情況,要是排序代價很小,這樣很好了

/**

*2.15,在有序陣列中查詢,利用二分查詢的方法

* */

#include using namespace std;

/** *二分查詢(也可以通過遞迴實現)

* */

int sort(int *a, int length, int value)else if(value > a[center])else

} return -1;

}//遞迴形式

int sort(int *a, int left, int right, int value)

int main();

cout<<"列表:"<>v;

cout<<"在位置:"

二分查詢 遞迴和非遞迴

二分查詢要求 資料儲存在順序儲存結構中 數字有序排放 原理 將陣列分為三部分,依次是左值,中值,右值 將要查詢的值和陣列的中值進行比較,若小於中值則在中值前 面找,若大於中值則在中值後面找,等於中值時直接返回。然後依次是乙個遞迴過程,將前半部分或者後半部分繼續分解為三部分。迴圈實現二分查詢 temp...

遞迴和非遞迴的二分查詢

思路很簡單,注釋已標註 include 遞迴二分查詢 int binarysearch int start,int end,intfinddata int mid start end start 2 根據中間值不斷二分縮小待查元素所在範圍 if finddata mid else if findda...

二分查詢的遞迴和非遞迴

常見的查詢演算法大概有順序查詢 二分查詢 二叉排序樹查詢 雜湊表法 雜湊表 分塊查詢等,下面簡單了解一下其他幾種查詢演算法。1.順序查詢 也就是暴力方法,按順序比較每個元素,直到找到關鍵字為止。條件 無序或有序資料,時間複雜度 o n 2.二叉排序樹查詢 二叉排序樹的性質 1.若它的左子樹不空,則左...