**:
package algorithms.sort;
public
class
middlesplitbyrecursion
public
static
void
middlesplitbytworecursion
(int
a,int lo,
int hi)
public
static
void
main
(string[
] args)
;middlesplitbyonerecursion
(aa,
0, aa.length-1)
; system.out.
println()
;middlesplitbytworecursion
(aa,
0, aa.length-1)
;}}
輸出:
012
4013
2576
4
應用一例:歸併排序
**:
package algorithms.sort;
import algorithms.model.smethod;
//自底而上的歸併排序,是由底層小陣列片段對逐步有序到全部陣列有序。基本思想是歸併兩個短的有序陣列片段為乙個長度有序陣列片段。
//如何找到兩個有序的陣列片段呢?想到兩個分別含有乙個元素的陣列片段就是兩個有序陣列片段。然後不斷的歸併它們。
//如何找到分別只含有乙個元素的陣列片段呢?答案是對長陣列不斷地做兩兩切分,切分成很多層兩兩陣列片段,逐層陣列片段對越來越多,
//每對中的元素越來越少,直到每個陣列對中的每個陣列片段只含有乙個元素。然後對這一層的所有陣列片段對使用歸併排序進行合併排序。
//合併後,陣列對對減半,再合併該層減半的陣列對,每個陣列中的元素個數會加倍,重複此過程,直到返回到頂層,此時頂層已變成整個陣列切分成兩個
//有序的陣列對,然後最後一次使用歸併排序,使整個陣列有序。
class
merge
public
static
void
sort
(int
a,int lo,
int hi)
public
static
void
main
(string[
] args)
;merge
(b,0,3
,8);
for(
int i : b)
system.out.
print
(i +
" ")
; system.out.
println()
;int
a =
;sort
(a,0
,a.length-1)
;for
(int i : a)
system.out.
print
(i +
" ");}
}
輸出:
156
1213
1417
355612
3459
1111
71
遞迴函式理解
遞迴需要關注,每次遞迴達到的目的,包括影響了哪些全域性值,或者改變什麼全域性狀態 另外是輸入條件和邊界結束條件,輸入條件保證遞迴的輸入環境是否一致 結束條件,表明什麼時候結束,避免無限遞迴。最後是遞迴在函式中的位置,遞迴在函式開始,中間,末尾 遞迴函式在函式中不同的位置,影響點 1.函式前面部分對遞...
Python 遞迴函式 理解漢諾塔
python的遞迴函式 理解漢諾塔 利用遞迴函式移動漢諾塔 defmove n,a,b,c if n 1 print move a,c else move n 1,a,c,b 先把a號樁當做起點樁,b號樁當做終點樁,c號樁當做中間樁,移動a號樁上面n 1個盤子到b號樁 move 1,a,b,c 然後...
SetBkMode函式理解
輸出的字串時,發現存在背景色,這樣的輸出是破壞背景的。那需要使用什麼方法來保持背景不變,而又能輸出紅色的字串呢?比如按鈕的文字顏色是黑色的,而背景是灰色的。這就需要使用setbkmode函式來設定drawtext函式的輸出方式,顯示裝置共有兩種輸出方式 opaque和transparent。opaq...