二分演算法:
二分演算法應用條件:陣列要有序。(使用二分查詢演算法的條件:要麼公升序,要麼降序。所以首先要排序,可以使用前面講到的氣泡排序或是快速排序演算法先對陣列進行排序)。
二分演算法如何應用:在陣列有序的前提下,將陣列一分為二。在陣列有基數個元素的情況下,比如陣列有15個元素,用第8個數與待查詢數進行比較,如果比他大,那麼第8個數之後的所有數就都被排除了,然後再從前面7個數查詢。然後再從前面的7個裡面找,使用和前面相同的方法,把這些數也是一分為二,然後用差不多居中的乙個數比……然後….. 。
二分演算法注意事項:mid溢位的問題。
貪心演算法:
貪心演算法的基本思想是找出整體當中每個小的區域性的最優解,並且將所有的這些區域性最優解合起來形成整體上的乙個最優解。因此能夠使用貪心演算法的問題必須滿足下面的兩個性質:
1.整體的最優解可以通過區域性的最優解來求出;
2.乙個整體能夠被分為多個區域性,並且這些區域性都能夠求出最優解。使用貪心演算法當中的兩個典型問題是活動安排問題和揹包問題。
貪心演算法的步驟:
1.從問題的某個初始解出發。
2.採用迴圈語句,當可以向求解目標前進一步時,就根據區域性最優策略,得到乙個部分解,縮小問題的範圍或規模。
3.將所有部分解綜合起來,得到問題的最終解。
二分貪心 21
題目大概 有n堆積木,積木高度不同,每個小方塊高度相同。問,最少移動多少小方塊,使得這些積木堆高度相等。思路 先求這些積木的平均數,在把所有的高度與平均數的差值加起來,最後除2,就是最少移動的方塊數。感想 這個題有一點很坑人,最後輸出的時候有乙個小點,不注意看看不到。include include ...
二分貪心 E
題目 輸入n和c,n代表有n間屋子c代表有c頭牛,然後輸入n個數代表這n間房子的座標,牛不喜歡這個布局,一進去就會很暴躁,所以要把牛分的盡可能的遠求最近兩頭牛的最大距離。解題思路 建立乙個陣列存這些房子的座標,然後用sort將這些座標排序,然後令l 0,r a n mid l r 2,先用mid當作...
二分貪心 T
題目 有1 1,2 2,3 3,4 4,5 5,6 6大小的盒子,要把它們裝到6 6的盒子裡,它們的高度都是相同的,用最少的6 6盒子把所有尺寸的盒子都裝起來。解題思路 6 6,5 5以及4 4尺寸的物品每個物品需要占有乙個箱子,3 3的物品乙個箱子可以放4個,2 2的物品箱子可以放9個,1 1的可...