今天学《数据结构与算法之美》中的一个算法叫二分查找的算法。 这个算法的最基本代码挺简单的,就是每次查找数组都往中间去找,如果中间位置的数据比要找的数据要大,说明要找的数据在中间位置之前;如果中间位置的数据比要找的数据要小,说明找到的数据在中间位置之后。如果中间位置的数据等于要找的数据,那么直接结束。 这个算法的使用前提是,必须事先排好顺序,并且没有重复数据。 到这里我都觉得挺简单的,之后学习这个算法的一个变体,就是找到数组中第一个等于要找数据的位置。 我自己想了一会,想到一个办法,解决这个问题,想要去看看作者的代码,发现代码和我的有很大的差别,但和之前的二分查找的算法的代码很多类似的地方,我看看好一会觉得没有看明白,觉得自己学不会了。 于是我在这种认为自己学不会的心态下,反复看了一段时间,结果就如自己认为的一样,没有看懂,当我意识到这一点之后,我选择休息一下再说,有了逃避的意思。 在看了几集《名侦探柯南》之后,想到自己遇到困难就逃避永远做不成事,于是重新鼓励自己,使用更加笨的方式进行学习,也就是根据程序的描述,把程序的过程用图一步一步画出来,就这样虽然花了挺多时间,最后这个算法算是看明白了。 经过这件事我想到,当自己认为自己学不会时,很有可能真的学不会。 那遇到这种情况怎么办呢? 换一种心情,换一种方法来学。 怎么才能做到换一种心情,换一种方法呢? 做一件其他的事换换脑子其实就是很好的选择,就和我今天一样,只不过今天我是偶然为之。 |
|