1. 程式人生 > >二分查詢函式binary_search

二分查詢函式binary_search

{
   
int position;
   T  data;
   
int bottom =0, top = size -1;
   
while (bottom < top) {
      
int mid = (bottom + top) /2;
      data
= arr[mid];
      
if (data < target)
         bottom 
= mid +1;
      
else
         top 
= mid;
   }

   
if (top < bottom) return-1;
   
else{
      position 
= bottom;
      data
= arr[bottom];
      
if (data == target)  return position;
      
elsereturn-1;
   }

}

相關推薦

二分查詢函式binary_search

{   int position;   T  data;   int bottom =0, top = size -1;   while (bottom < top) ...{      int mid = (bottom + top) /2;      data = arr[mid];      if

折半查詢演算法及二分查詢函式及猜數字遊戲實現

折半查詢演算法 #include<stdio.h> int main() {     int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };     int left = 0;     int right = siz

二分查詢函式彙總

問題:A心裡想一個1-1000之間的數,B來猜,可以問問題,A只能回答是或否。怎麼猜才能問的問題次數最少? 思路:是1嗎?是2嗎?…是999嗎? 平均要問500次 大於500嗎?大於750嗎?大於625嗎? …每次縮小猜測範圍到上次的一半 只需要 10次 二分

Linux核心中的bsearch二分查詢函式

/* * bsearch - binary search an array of elements * @key: pointer to item being searched for * @base

二分查詢def binary_search之python語言

def binary_search(list, item):     low = 0                    high = len(list) &

STL中二分查詢函式

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int a[12] = {1,6,31,66

過載實現:int char二分查詢. 函式模板 :對整型 浮點型 字元型 實現氣泡排序

程式:演算法+資料 C++語言的資料:   1、基本型別: 整型,浮點型,字元型,bool型別   2、變數:此塊空間的內容可改變         型別 變數名;//分配空間:以型別       初始化變數:在定義變數同時賦初值       引用:通過名字引用變數的內容  

c++ 二分查詢binary_search

  #include <iostream> // cout #include <algorithm> // binary_search, sort #include <vector> // vector using namespa

python之遞迴函式二分查詢

遞迴函式 遞迴函式一直都是我們所覺得難理解的以一種方式,但其實,也很好理解的,遞迴函式就是自己呼叫自己。就是在重複的做同一件事情。只是有的時候,也最好不要使用遞迴函式,因為你的函式一旦呼叫,就要開闢新的記憶體空間。不利於程式的執行。python對你記憶體一個保護機制,預設只能遞迴到998

遞迴函式二分查詢演算法

一、遞迴函式 1.遞迴呼叫的定義 遞迴呼叫是函式巢狀呼叫的一種特殊形式,函式在呼叫時,直接或間接呼叫了自身,就是遞迴呼叫 def foo(n): print(n) n += 1 foo(n) foo(1) 2.遞迴最大深度 最大遞迴深度預設是

Python基礎14_遞迴函式,二分查詢

 一. 遞迴     在函式中呼叫函式本身, 就是遞迴     prthon中遞迴的最大深度是998         def func(n)

二分查詢,實現自定義lower_bound函式、upper_bound函式

lower_bound函式 #include<iostream> #include<algorithm> using namespace std; const int M=1e5; int my_lower_bound(int *a,int n,int x){ int

函式實現二分查詢

問題及程式碼: #include <stdio.h> int binary_search(int arr[], int n, int k); #define SIZE 10 int main( ) { int d[SIZE] = {1,3,9,12,32

Python函式之遞迴(用遞迴實現二分查詢

遞迴:簡單來說就是引用(或者呼叫)自身的意思。 #階乘 def factorical(n): result=n for i in range(1,n): result *=i return result print(factorical(12)) 輸出

C語言排序函式二分查詢呼叫方法

程式設計時經常遇到對陣列排序或在一個數組中查詢數字的情況,C庫<stdio.h>中提供了簡便的呼叫方法,將排序演算法封裝成通用的排序函式; 排序函式qsort void qsort( void *base, size_t n, size_t siz

寫一個函式,實現一個整形有序陣列的二分查詢

程式程式碼: #include <stdio.h> #include <windows.h> int binary_search(int arr[], int num, int

[lc3]彙編實現二分查詢(Binary Search)找函式零點

Find the zeros of a polynomialPurpose (1)主要目標:用BinarySearch的方法實現在給定區間上的單調多項式函式的零點查詢。(2)具體要求: 1.要求對f(x)的計算採用subroutine來實現,x存放在R0中且將結果存放在R4中

二分查詢/二分搜尋(binary_search)詳解

前提: 1.不考慮超大資料情況。 2.對於二分查詢/搜尋,要求待查表為有序表。 程式碼:   1.遞迴方式:  #include<iostream> using namespace std; int binary_search(int a[],int h,in

STL中與二分查詢相關的4個函式

二分查詢的原理非常簡單,但寫出的程式碼中很容易含有很多Bug,二分查詢一文中講解過如何實現不同型別的二分查詢,但是否一定要自己去實現二分查詢呢?答案顯然是否定的,本文將講解STL中與二分查詢有關函式的具體使用方法及其實現原理。 函式使用 STL中與二分查詢相關的函式有

bsearch()函式二分查詢

原部落格 bseach()函式用於二分查詢。 void *bsearch(const void *key, const void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *)