二分算法:
二分算法应用条件:数组要有序。(使用二分查找算法的条件:要么升序,要么降序。所以首先要排序,可以使用前面讲到的冒泡排序或是快速排序算法先对数组进行排序)。
二分算法如何应用:在数组有序的前提下,将数组一分为二。在数组有基数个元素的情况下,比如数组有15个元素,用第8个数与待查找数进行比较,如果比他大,那么第8个数之后的所有数就都被排除了,然后再从前面7个数查找。然后再从前面的7个里面找,使用和前面相同的方法,把这些数也是一分为二,然后用差不多居中的一个数比……然后….. 。
二分算法注意事项:mid溢出的问题。
贪心算法:
贪心算法的基本思想是找出整体当中每个小的局部的最优解,并且将所有的这些局部最优解合起来形成整体上的一个最优解。因此能够使用贪心算法的问题必须满足下面的两个性质: 1.整体的最优解可以通过局部的最优解来求出; 2.一个整体能够被分为多个局部,并且这些局部都能够求出最优解。使用贪心算法当中的两个典型问题是活动安排问题和背包问题。
贪心算法的步骤:
1.从问题的某个初始解出发。 2.采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。 3.将所有部分解综合起来,得到问题的最终解。