利用C語言實現(xiàn)折半查找法的方法-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關利用C語言實現(xiàn)折半查找法的方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,嶧城企業(yè)網(wǎng)站建設,嶧城品牌網(wǎng)站建設,網(wǎng)站定制,嶧城網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,嶧城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

折半查找法也叫做二分查找,顧名思義,就是把數(shù)據(jù)分成兩半,再判斷所查找的key在哪一半中,再重復上述步驟知道找到目標key;

注意:折半查找法僅適用于對已有順序的數(shù)組、數(shù)據(jù)進行操作!??!

很顯然,折半查找法相對于其他查找方法例如順序查找法效率要高很多;

下面我們來實際操作一下,了解二分查找的奧義。

例如:要在數(shù)組arr[]={8,7,9,6,4,1,2,5,3,10,11};中查找key=7的位置;首先,我們要先將數(shù)組arr中的數(shù)據(jù)成員進行排序。arr[]={1,2,3,4,5,6,7,8,9,10,11};

利用C語言實現(xiàn)折半查找法的方法

如圖所示:將該組數(shù)據(jù)小端記作low,大端記作high,中間值記作mid;
二分法查找時,將所查找的key與mid比較,例如key=7,即可縮小查找范圍在mid和high之間;


利用C語言實現(xiàn)折半查找法的方法

如圖所示即可找到key=low=7;

注意: (敲黑板)如果中間數(shù)mid不是整數(shù),需要進行取整。

代碼如下:

#include<stdio.h>
int BinSearch(int arr[],int len,int key)             //折半查找法(二分法)
{
 int low=0;             //定義初始最小
 int high=len-1;         //定義初始較大
 int mid;              //定義中間值
 while(low<=high)
 {
 mid=(low+high)/2;       //找中間值
 if(key==arr[mid])        //判斷min與key是否2020111122411718相等
  return mid;  
 else if(key>arr[mid])       //如果key>mid 則新區(qū)間為[mid+1,high]
  low=mid+1;
 else                    //如果key<mid 則新區(qū)間為[low,mid-1]
  high=mid-1;
 }
 return -1;               //如果數(shù)組中無目標值key,則返回 -1 ;
}
int main()
{
 int arr[]={1,2,3,4,5,6,7,8,9,10,11};           //首先要對數(shù)組arr進行排序
 printf("%d \n",BinSearch(arr,(sizeof(arr)/sizeof(arr[0])),7));
 return 0;
}

網(wǎng)頁標題:利用C語言實現(xiàn)折半查找法的方法-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://muchs.cn/article38/dcpdsp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、靜態(tài)網(wǎng)站、電子商務App開發(fā)、App設計、網(wǎng)頁設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設