二分查找递归与非递归的时间比较_我们说一说Python的查找算法!
相信大家在面試開發崗和算法崗時,評委最喜歡問的就是:您能給我說一下查找和排序算法有哪些?今天咱們就說一說Python中最常用的查找算法,下期我們再推出排序算法。
首先要明白查找是查什么?我們希望能給定一個值,在待查找的范圍內確認是否存在某一數據與指定值相同,返回該數據的索引。最常用的查找算法主要包括順序查找和二分查找,順序查找就是從待查找的數據中從第一元素開始,逐個將每個元素值與指定查找的值進行對比;如果比較到兩者相同,則查找成功;如果到最后仍未找到,則查找失敗。下面是順序查找代碼:
順序查找_page_1
順序查找_page_2
我們看到,順序查找的優勢就是適合數據量小,不要求數據本身有序,但當數據量較大時,查找效率低。而二分查找是指在有序數據集合中查找數據,默認從小到大排序,找出有序數據中的中間元素,由中間元素將源數據分為左右兩部分。比較中間值與指定查找值的大小:1)如果相等,則查找成功;2)如果指定值比中間值小,則左側繼續重復查找;3)如果指定值比中間值大,則右側繼續重復查找。4)如此遞歸下去,直到成功找到或查找完整個數據集合為止。二分查找我們可以用循環的方式,也可以用遞歸的方式實現,首先是循環的方式:
二分查找(循環)_page_1
二分查找(循環)_page_2
接下來是遞歸模式:
二分查找(遞歸)_page_1
二分查找(遞歸)_page_2
我們看到二分查找的主要優勢是每次查找其搜索范圍減半,但要求數據本身有序。受制于水平的有限,這里基于Python這門語言將順序查找和二分查找進行了簡單的對比,各有優勢。需要交流和切磋的讀者朋友,請在評論區積極留言,歡迎關注頭條號:杜哥說python。
總結
以上是生活随笔為你收集整理的二分查找递归与非递归的时间比较_我们说一说Python的查找算法!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马斯克的X正在对他不喜欢的网站故意增加5
- 下一篇: 京东零售CEO辛利军:京东在技术上的投入