引言

在前几期算法文章中,大家应该学到了一些新的算法吧。今天小编再来分享一种算法---二分法。想象一下你眼前用十个数字,分别是从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.最最最重要的是: