Python|分分分找数据
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|分分分找数据相关的知识,希望对你有一定的参考价值。
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
引言
在前几期算法文章中,大家应该学到了一些新的算法吧。今天小编再来分享一种算法---二分法。想象一下你眼前用十个数字,分别是从1到10,如果要你一秒找出数字6,肯定觉得很简单吧,因为你的眼睛能一眼就看出来。但是如果要计算机去找数字6,它的眼睛是什么呢?计算机虽然没有眼睛,可是它有算法这个得力助手。所以当面对一大堆数据时,计算机就可以用二分法,查找想要的目标元素。
问题描述
如何从有序数列【2,4,6,12,23,26,33,34,55,57,67,68,77】找到数字6,现在我们站在计算机的角度去思考这道题。
解决方案
第一步:计算机会先找到这组有序数列的头和尾,然后从中间把数列分成两部分,也就是从33分开。第二步:它会将6与中间数字33进行比较,发现6<33,然后只需要继续锁定33的左边,直接放弃右边。第三步:寻找中间数字,也就是12。然后6与12进行比较,发现6<12,然后继续锁定12的左边。最后一步:中间数字分别是4和6,发现6=6,从而找到了目标数字。
所以二分法的步骤就是:先找出中间数字,然后目标数字与中间数字比较,如果与目标数字匹配,则直接结束。否则确定下一步的方向,然后继续重复步骤,与中间数字比较,直到找到自己目标数字。
那我们使用二分法时需要注意什么呢?1.最最最重要的是:需要查找的序列一定是有序的序列,是已经排好序的,不然就不适用。如果给你一大堆无序的数字,让你找目标数字,相信你也不容易找出来。2.如果某一次比较的过程中,发现数组为空,则无法找出目标元素。
结语
好啦,这就是今天小编想与大家分享的二分法。其实这里面还有很多奥妙,小编这不过只是冰山一角,而其中更多更有意思的部分还要读者朋友们自己去挖掘,自己发现的东西一定会更加印象深刻,更加让人激动。如果有机会,小编会与大家继续分享自己的心得体会。要是喜欢的话,请给小编点个小心心!!!
实习编辑:王晓姣
作者:刘欣
稿件来源:深度学习与文旅应用实验室(DLETA)
以上是关于Python|分分分找数据的主要内容,如果未能解决你的问题,请参考以下文章
教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
基础入门_Python-进线协程.分分钟玩转multiprocessing多进程编程?
教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神