문제 설명 :
에서 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, 대한 공격 [] INT)] {INT fmt.Println ( "병합 도착"ARRL, 대한 공격) I, J = 0,0 TMP = 메이크업 ([] INT, 0) 에 대한 I <LEN (ARRL) && J <LEN (대한 공격) { 경우 (ARRL [I]> 대한 공격 [J]) { TMP = APPEND (TMP, 대한 공격 [J]) J ++ 한다} else { TMP = APPEND (TMP, ARRL [ I]) I ++ } } TMP = APPEND (TMP, ARRL [내가 :] ...) TMP = APPEND (TMP, [J를 ARRR :] ...) 복귀 TMP } 머지 소트 (도착 [] INT FUNC)] INT { L = LEN (도착) 의 경우 (L <2) { 리턴 도착 } 키 = l / 2 fmt.Println ( "이전"왼쪽) 왼쪽 : = 머지 소트 (도착 [키 0]) fmt.Println ( " 후, "왼쪽왼쪽) 오른쪽 = 머지 소트 ( [키 :], 언) fmt.Println (오른쪽 "직후에") 복귀 병합 (왼쪽, 오른쪽) }
같은 생각 단어의 목록, 어떤 처리를 할 경우, 뭔가를 먹을 수 있습니다. 나중에 업데이트