程式設計珠璣的二分法

2021-06-21 09:24:52 字數 1096 閱讀 8522

二分法,究其根本就是在已經排好序的基礎上進行的資料查詢,該方法具有較高的效率,特別好用

// 進化的二分法.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#includeusing namespace std;

templateint find_by_binary(any* ptr ,int nlength,any value)

{ int low=0,high=nlength-1;

int middle=(low+high)/2;

while(low<=high)

{ if(value如果提高一下難度呢?因為我們不知道獲得的資料是第乙個,或者說根本不了解所獲取資料的位置,可以說是隨機的,如果我們想要得到的是第乙個,或者是最後乙個呢???

不要著急,我們分別來說下,首先呢,是獲取特定資料第一次出現的位置其原理就是記錄每次該值出現的位置,一直到最後一次,,如果某值出現,那麼向下查詢,因為我們找的是第一次出現的啊,假定該位置一定不是第一次出現,那麼向前查詢,就是將high=middle-1;即可如果是最後一次出現的呢,就是不斷向後查詢將low=middle+1;即可

**如下

// 進化的二分法.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#includeusing namespace std;

templateint getfirstbinarysearch(any* ptr ,int nlength,any value)

{ int low=0,high=nlength-1;

int middle=(low+high)/2;

int npos=-1;

while(low<=high)

{ if(valueint getlastbinarysearch(any* ptr ,int nlength,any value)

{ int low=0,high=nlength-1;

int middle=(low+high)/2;

int npos=-1;

while(low<=high)

{ if(value

謝謝

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

二分法,二分搜尋

二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...