2015-01-08 3 views
-3

배열의 '무작위성'이 배열을 완전히 정렬 된 상태로 유지하기 위해 수행해야하는 스왑 수와 같다고 가정 해 보겠습니다.배열의 무작위성 배열의 무작위성

정렬 된 입력 배열을 사용하고 최대 '임의성'을 가진 배열을 반환하는 프로그램을 작성하고 싶습니다.

도와주세요.

+0

일반적으로 질문은 '?'로 끝납니다. – RPGillespie

+0

역순 정렬 된 배열 만 반환하면됩니다. – Quentin

+0

http://en.wikipedia.org/wiki/Kendall_tau_distance – abligh

답변

3

"스왑"정의 방법에 따라 다릅니다.

예를 들어 배열이 [1,2,3,4,5]이고 스왑이 인접한 숫자 사이 여야하는 경우 최대 "임의성"이있는 배열은 역방향 [5,4,3,2,1]이됩니다. 그러나 스왑이 임의의 두 숫자 사이에있을 수있는 경우 최대 "임의성"이있는 배열은 을 스왑으로 정렬하는 배열이됩니다 (예 : [5,1,4,2,3])

+0

도 참조하십시오. – Amit4209211420

+0

어떤 정렬 알고리즘을 사용하고 있습니까? – RPGillespie

+0

빠른 정렬을 위해서는 5 회의 스왑이 필요합니다. – Amit4209211420

0

가능한 많은 배열이 종류. 예를 들어, 정렬 된 배열을 생산하기 위해 모두 다섯 스왑이 필요 5.

2,3,4,5,1

5,4,3,2,1

까지의 숫자 1을, 모든 요소가 위치를 벗어 났기 때문입니다.