算法的重要性不必我说大家都知道吧,就是程序员的内功啊,然而大多数时候我们并不是很重视这个问题,直到面试的时候一个简单的快排都没法写出来才知道自己是有多窘迫,最终草草结束面试,与心仪的工作失之交臂。既然无法改变过去,那从现在开始抓紧时间学一下算法吧(起码基本的总得会吧)。
给你1到100的有顺序的数,让你随便找一个数你得找多少次?正常情况,我们会从头数,一直数到要找的数,很显然这种方法很低效,有没有更为高效的方法?这里我介绍一种二分法。
何为二分法,言简意赅,我们就是每一次取最大和最小值的中间值与要找的数进行比较,然后确定要查找的数的范围在那一边(比如值比中间数小,则要查找的数在左边范围,反之亦然),然后在指定范围内取中间值继续比较,一直找到要找的数(或者找不到)。
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
缺点:时间复杂度为(n^2)运算速度相对较慢.