在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用C語言實現高效查找(二分法)

信盈達 ? 2024-06-04 08:04 ? 次閱讀

今天給分享一下使用C語言實現二分算法,主要包含以下幾部分內容:

  • 二分查找算法介紹
  • 二分查找算法使用場景
  • 二分查找算法代碼實現
  • 二分查找算法實現過程

用C語言實現二分法查找f489a4ba-2205-11ef-bd4a-92fbcf53809c.png

二分查找也稱折半查找(Binary Search),是一種效率較高的查找方法。

f48d8de6-2205-11ef-bd4a-92fbcf53809c.png

f4a93104-2205-11ef-bd4a-92fbcf53809c.png

有序且不重復的數組中的元素的查找。

f4ae4306-2205-11ef-bd4a-92fbcf53809c.png

int findNumIndex(int *arr,int len,int n){ int end = len; int start = 0;
//越界 if(n > *(arr+len-1) || n < *(arr)) { return -1; }
while(1) { int midIdx = (end + start) / 2;
if(start == midIdx && *(arr+midIdx) != n) { return -1; }
if(*(arr+midIdx) == n) { return midIdx; } else if(*(arr+midIdx) > n) { end = midIdx; } else { start = midIdx; } }}

f4b2438e-2205-11ef-bd4a-92fbcf53809c.png

首先,假設數組中的元素是按升序排列的,將最中間的數字和要搜索的數字進行比較,如果兩者相等,則搜索成功;否則,從中間數字位置將數組分為兩個子數組,前數組和后數組,如果中間數字大于搜索數字,則進一步查找前數組中的元素,否則在后一個數組中進行查找。重復上述過程,直到找到滿足條件的數字,則搜索成功,或者直到子表所有的數字查找完畢還沒有找到該數字,此時搜索不成功。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140557
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70308
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    求助:如何用C語言實現直接尋址

    何用C語言實現直接尋址,就像匯編里面的mov 0x80,0x60
    發表于 05-13 16:39

    Java常用排序算法&程序員必須掌握的8大排序算法+二分法查找

    Java常用排序算法&程序員必須掌握的8大排序算法+二分法查找
    發表于 10-19 19:33

    Labview實現二分法查找數值區間

    二分法是檢索里經常用到的一種方法,可以實現對有序數組進行檢索,本程序通過二分法實現對數據進行區間匹配,并輸出最小匹配區間和匹配區間的索引值,尤其適合多段函數的數值計算。
    發表于 04-18 13:22

    淺析漸近表示二分法

    《算法圖解》NOTE 1 算法的漸近表示以及二分法
    發表于 10-10 10:58

    何用VHDL語言實現幀同步的設計?

    幀同步是什么工作原理?如何用VHDL語言實現幀同步的設計?
    發表于 04-08 06:33

    何用C語言實現面向對象編程

    、組合、多態等面向對象的功能,但C語言有struct和函數指針。我們可以用struct中的數據和函數指針,以此來模擬對象和類的行為。所以在正式開始設計模式前,先看看如何用C
    發表于 07-12 07:24

    何用C程序解一元三次方程根

    摘要:本文介紹了高等數學的近似計算方法中切線二分法的思想,再利用其思想結合C程序設計語言,編寫出了求一元三次方程根的程序,該程序稍加修改,即可成為求更高次方
    發表于 06-21 09:19 ?61次下載

    C語言教程之二分查找

    C語言教程之二分查找,很好的C語言資料,快來學習吧。
    發表于 04-22 11:06 ?0次下載

    基于C語言二分查找排序源代碼

    本文檔內容介紹了C語言歸并、選擇、直接插入、希爾、冒泡、快速、堆排序與順序、二分查找排序源代碼,分享給大家供大家參考。
    發表于 01-04 11:24 ?1次下載

    基于二分法與移動Sink的無線傳感器網絡數據收集協議

    傳感器節點能量的有限性,嚴重制約了無線傳感器網絡的推廣與發展。因此,如何改善傳感器節點能源的利用率、節約能耗以及提高整個網絡的生存周期成為該領域研究者面臨的挑戰之一。 為延長網絡生存周期,提出一種基于二分法與移動Sink的無線傳感器網絡數據收集協
    發表于 03-12 10:43 ?0次下載
    基于<b class='flag-5'>二分法</b>與移動Sink的無線傳感器網絡數據收集協議

    圖像處理算法之二分查找

    二分查找又稱折半查找,優點是比較次數少,查找速度快,平均性能好;其缺點是要求待查表為有序表,且插入刪除困難。
    的頭像 發表于 03-17 11:29 ?5096次閱讀

    詳解C語言二分查找算法細節

    我相信對很多讀者朋友來說,編寫二分查找的算法代碼屬于玄學編程,雖然看起來很簡單,就是會出錯,要么會漏個等號,要么少加個 1。
    的頭像 發表于 06-22 09:05 ?2954次閱讀
    詳解<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>二分</b><b class='flag-5'>查找</b>算法細節

    筑基_C_5_對數組的二分查找

    C語言泛型編程,實現對數組中某元素的二分查找
    發表于 12-06 10:21 ?9次下載
    筑基_<b class='flag-5'>C</b>_5_對數組的<b class='flag-5'>二分</b><b class='flag-5'>查找</b>

    如何理解二分查找算法

    本文就來探究幾個最常用的二分查找場景:尋找一個數、尋找左側邊界、尋找右側邊界。 而且,我們就是要深入細節,比如不等號是否應該帶等號,mid 是否應該加一等等。分析這些細節的差異以及出現這些差異的原因,保證你能靈活準確地寫出正確的
    的頭像 發表于 04-19 11:10 ?801次閱讀
    如何理解<b class='flag-5'>二分</b><b class='flag-5'>查找</b>算法

    FPGA設計中二分法查表算法的實現

    二分查找算法是在軟件中廣泛應用的一種算法,那么在FPGA的設計中是否可以用這種算法呢?什么場景下會可能用到這種算法呢?
    的頭像 發表于 09-06 18:26 ?1421次閱讀
    FPGA設計中<b class='flag-5'>二分法</b>查表算法的<b class='flag-5'>實現</b>
    主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠97影音先锋 | 久久婷婷国产一区二区三区 | 91成人免费观看 | 69精品久久久久 | 性生i活一级一片 | 日本三级日本三级人妇三级四 | 午夜视频在线观看完整高清在线 | 人与性www| 天天草夜夜骑 | 农村妇女高清毛片一级 | 可以直接看的黄色网址 | 中文一区在线 | 免费观看交性大片 | 亚洲va久久久噜噜噜久久 | 国产午夜精品一区二区三区 | 六月婷婷导航福利在线 | 午夜精品福利影院 | 天天综合网久久 | 中文字幕一区二区在线观看 | 国产精品美女一区二区三区 | 亚洲色图综合图区 | 天天拍天天操 | 国产精品免费久久 | 亚洲免费网 | 日日碰狠狠添天天爽五月婷 | 在线精品一区二区三区 | 可以直接看的黄址 | 国产手机在线国内精品 | 日本特黄色大片 | 一级特黄aaa大片在线观看 | 日本黄色影片在线观看 | 婷婷香蕉 | 三级精品在线观看 | 久久伊人成人 | 欧美精品福利 | 欧美一级特黄aaaaaa在线看首页 | 丁香婷婷综合五月六月 | 日本三级免费看 | 免费啪啪网 | 98色花堂国产第一页 | 狠狠色伊人亚洲综合第8页 狠狠色依依成人婷婷九月 狠狠色影院 |