c语言二分法查找一个数_算法简解-二分查找
讀書不記錄=沒讀,始終是我的信條·····最近因為要參加競賽,發現自己真的差的很遠,所以打算重新開始學習一遍算法及AI的相關數學知識,相信很多人都是聞數學,理工科色變,之前也是覺得上數理課太難了,真的很枯燥乏味,所以希望能通過自己的學習,把這些內容盡量簡化的傳遞給一些朋友,大家一起加油鴨!
我第一遍學算法的時候主要是想搞懂一些基本概念,不然連文獻都不知道在講些什么,后來發現想要好好做研究,必須要扎實的掌握這些內容,so。開始
算法的重要性:算法是一個程序的靈魂·······我們現在能在能夠這么方便的上網,檢索問題,都是在各種算法優化的基礎之上的,不管是計算機的硬件還是軟件,都離不開算法的精妙設計。也是全世界工程師都在努力突破的問題。
算法的解釋:主要是一組完成任務的指令,主要解決的問題就是提升速度,減少復雜度,盡可能高效的處理計算機程序中的復雜任務。
實現算法的語言:任何一種語言都能執行算法(針對沒有基礎的小白,可以選擇自己喜歡的語言去做實驗)。
算法難度:需要具備基本的代數知識,比如y=f(x)。
第一部分:二分查找;
比如說完猜數字游戲,對方給出1到100個數字,如果普通的猜法,就是從1數到100,總會才對,但是要猜100次,花費很多時間。二分法就是直接從50開始對半猜,這樣只需要七次就能猜中了100→50→25→13→7→4→2→1(最多步,可能用不了這些。)不管是哪個數字,7次之內都能猜到,哈哈是不是很神奇。 可能這個例子不夠特別突出二分查找的優勢,但是換成大量數據的時候就能體現出來它的快速和簡潔。 但前提是列表或者數據是按順序排列的時候,這種方法會比較管用。
這里計算的一個重要公式是 :假如有n個元素的列表,用普通方法需要n步解決,但是二分方法最多需要
步。比如有1024個元素時候,普通的查法最多需要1024次,但是
即查找10次就可以了 因為 ;log函數在算法設計中經常遇到,對數也就是冪運算的逆運算,所以這部分需要補課的胖友們隨用隨查就好。
今天是算法復習的第一天,也對以前沒弄懂的一些東西理解深入了一點,希望后面自己能堅持下來,也希望剛入門的新手朋友能看明白這份簡易的,教程。C語言代碼或者Python的代碼比較多,大家可以百度搜二分查找,用自己喜歡的代碼嘗試一下。 今天份的學習結束啦~
有一個python版本的連接可以參考:python實現二分查找 - 龍云飛谷 - 博客園
感謝博主的分享!
參考書:《算法圖解》Aditya Bhargava著
總結
以上是生活随笔為你收集整理的c语言二分法查找一个数_算法简解-二分查找的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git 拉代码_一篇文章理清Git
- 下一篇: 蓝牙模块怎么指定查询另一个蓝牙模块_拆解