純C語(yǔ)言:折半查找源碼分享
更新時(shí)間:2014年01月06日 16:15:26 作者:
這篇文章主要介紹了純C語(yǔ)言:折半查找源碼,有需要的朋友可以參考一下
復(fù)制代碼 代碼如下:
#include <stdio.h>
int bin_search(int key[],int low, int high,int k)
{
int mid;
if(low>high)
{
return -1;
}
else
{
mid = (low+high) / 2;
if(key[mid]==k)
return mid;
if(k>key[mid])
return bin_search(key,mid+1,high,k); /*在序列的后半部分查找*/
else
return bin_search(key,low,mid-1,k); /*在序列的前半部分查找*/
}
}
int main()
{
int n , i , addr;
int A[10] = {2,3,5,7,8,10,12,15,19,21};
printf("The contents of the Array A[10] are\n");
for(i=0;i<10;i++)
printf("%d ",A[i]); /*顯示數(shù)組A中的內(nèi)容*/
printf("\nPlease input a interger for search\n");
scanf("%d",&n); /*輸入待查找的元素*/
addr = bin_search(A,0,9,n);
if(-1 != addr) /*查找成功*/
{
printf("%d is at the %dth unit is array A\n ",n,addr);
}
else
{
printf("There is no %d in array A\n",n); /*查找失敗*/
}
getchar();
return 0;
}
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(146.近最少使用頁(yè)面置換緩存器)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(146.近最少使用頁(yè)面置換緩存器),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語(yǔ)言中隱藏結(jié)構(gòu)體的細(xì)節(jié)
以筆者粗淺的認(rèn)識(shí),有兩種最常用的方法,可以實(shí)現(xiàn)庫(kù)內(nèi)結(jié)構(gòu)體定義的隱藏:接口函數(shù)形參使用結(jié)構(gòu)體指針,接口函數(shù)形參使用句柄。2017-05-05
如何使用C語(yǔ)言實(shí)現(xiàn)平衡二叉樹(shù)數(shù)據(jù)結(jié)構(gòu)算法
對(duì)于判斷是否為平衡二叉樹(shù)而言,我們需要知道以下特性:是一個(gè)二叉樹(shù)也是一個(gè)二叉排序樹(shù)該樹(shù)的每個(gè)結(jié)點(diǎn)上的(深度)左子樹(shù) - 右子樹(shù)的值為平衡因子(BF(Balance Factor))該樹(shù)的每一個(gè)節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)的高度至多等于1(平衡因子只可能是-1,0,1)2021-08-08
C++中的類(lèi)成員函數(shù)當(dāng)線程函數(shù)
這篇文章主要介紹了C++中的類(lèi)成員函數(shù)當(dāng)線程函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C++ 中l(wèi)ambda表達(dá)式的編譯器實(shí)現(xiàn)原理
C++ 11加入了一個(gè)非常重要的特性——Lambda表達(dá)式。這篇文章主要介紹了C++ 中l(wèi)ambda表達(dá)式的編譯器實(shí)現(xiàn)原理,需要的朋友可以參考下2017-02-02
Qt結(jié)合OpenCV部署yolov5的實(shí)現(xiàn)
本文主要介紹了Qt結(jié)合OpenCV部署yolov5的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04

