배열이 있고 i 번째 요소와 i + 1 번째 요소 만 교환 할 수 있습니다. 이 배열을 최소 수의 교환 작업을 사용하여 순환 배열로 정렬하려면 어떻게해야합니까?배열을 원형 배열로 정렬
예를 들어 내 배열은 다음과 같습니다 -
3 5 4 2 1
그리고 교환 2 층과 3 나는 내가 어떤
3 4 5 1 2
를 얻을 수 4, 5를 교환 한 후
3 4 5 2 1
과를 얻을 수 2 개의 교환기에서 필요한 정렬 된 원형 배열.
또 다른 예
4 3 5 1 2
다음
1, 2의 한 교환 내가 이것을 달성하기 위해 사용한다 3 4 5 1 2
어떤 알고리즘을 나에게 준다?
어떤 방법을 시도해 보셨습니까? 최소한 무차별 대입 (brute force) 알고리즘을 가지고 있습니까? –
또한 첫 번째 요소와 마지막 요소를 교환 할 수 있습니까 (= 그 규칙도 원형입니까?)? –
nope ... 오직 i 번째 nd i + 1 번째 exchnge 만 허용됩니다 ... 요소의 위치에 대한 해시를 만들려고했는데 오른쪽 또는 왼쪽으로 이동해야하는지 여부를 확인했습니다. –