找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

算法简解-二分查找

admin 2019-5-15 11:53 113人围观 C++相关

鸭!

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


----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:Molly and friends,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......