算法简解-二分查找

Posted Molly and friends

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法简解-二分查找相关的知识,希望对你有一定的参考价值。

鸭!

我第一遍学算法的时候主要是想搞懂一些基本概念,不然连文献都不知道在讲些什么,后来发现想要好好做研究,必须要扎实的掌握这些内容,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著


以上是关于算法简解-二分查找的主要内容,如果未能解决你的问题,请参考以下文章

查找算法之“二分查找”

聊聊算法——二分查找算法深度分析

每周算法小知识之二分查找

二分算法(java超详细)

基础算法-二分查找

Go-二分查找算法