leetcode- 정렬 목록

문제 설명 :

  목록 정렬
 
 

에서  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 (오른쪽 "직후에") 
	복귀 병합 (왼쪽, 오른쪽) 
}

  같은 생각 단어의 목록, 어떤 처리를 할 경우, 뭔가를 먹을 수 있습니다. 나중에 업데이트



추천

출처www.cnblogs.com/StrongWang/p/10668423.html