問題の説明:
で O(N- ログイン N-時の複雑さと一定の等級、リストの並べ替えのスペースの複雑さを)。
例1:
入力:4-> 2-> 1-> 3 出力:1-> 2-> 3-> 4
例2:
入力:-1-> 5-> 3-> 4-> 0 出力:-1-> 0-> 3 - > 4 - > 5
この問題のアイデアがマージソート、マージソートの言語に行くソリューションを貼付:
FUNCマージ(ARRL [] INT、arrr [] INT)[] INT { fmt.Println( "マージARR"、ARRL、arrr) I、J:= 0,0 TMP =メイク([] INT、0) I <LEN(ARRL)&& J <LEN(arrr){ IF(ARRL [I]> arrr [J]){ TMP =アペンド(TMP、arrr [J]) J ++ }他{ TMP =アペンド(TMP、ARRL [i])と I ++ } } TMP = APPEND(TMP、ARRL [I:] ...) TMP = APPEND(TMP、arrr [J:] ...) リターンTMP } FUNCマージ(ARR [] INT)[] INT { L:= LEN(ARR) IF(L <2){ リターンARR } キー:= L / 2 fmt.Println( "左の前に") 左:=マージ(ARR [0:キー]) (左、 "左後")fmt.Println 右:=マージ(ARR [キー:]) fmt.Println( "直後"、右) リターン・マージ(左、右) }
同じことを考えて、単語のリスト場合は、何かを食べるために、いくつかの処理を行います。アップデート後に