이웃을 비교하지 않고 목록의 정렬을 확인할 수 있습니까?


14

이웃에있는 모든 항목을 비교하여 분류로 -item 목록을 확인할 수 있습니다. 내 응용 프로그램에서 모든 것을 비교할 수는 없습니다. 항목을 이웃과 . 대신 비교가 때로는 먼 요소 사이에있을 것입니다. 목록에 3 개 이상의 항목이 포함되어 있고 비교가 유일하게 지원되는 작업 인 경우, 목록이 정렬되었지만 적어도 하나의 인접 이웃이 누락되었음을 나타내는 "네트워크"비교가 존재합니까? 비교?

요소들의 시퀀스가 공식적 이자형나는 , I는 지표의 쌍들의 세트가 (제이,케이) I 알고있는가 여부 이자형제이>이자형케이 , 이자형제이=이자형케이 또는 이자형제이<이자형케이 . 비교 세트에서 누락 된 한 쌍 (,+1) 이 있습니다. 그러면 순서가 정렬되었음을 증명할 수 있습니까?


1
목록을 비교할 필요없이 정렬 할 수 있는지 여부에 대한 질문과 함께이 페이지를 나중에 찾은 경우 참고 사항 입력에 약간의 제한을 두거나 입력의 모양에 대해 아는 경우에만; (예 : 기수 정렬).
HammerN'Songs 19

그러나 정렬 되지 않은 경우에 사용되는 비교 수를 최적화 할 가능성이 있습니다.
Accumulation

1
@Acccumulation 실제로 그러한 가능성이 있습니까? 그러한 프로그램을 취하고 프로그램이 n-1 비교를하도록하는 길이 n의 적대적 목록을 요리하는 것은 쉽지 않습니다. QuickSort대한 Killer Adversary를 참조하십시오. 이 아이디어는 점근 분석의 나쁜 부분으로 퀵 정렬을 강요하는 데 더욱 도움이됩니다.
Daniel Wagner 19 1

@DanielWagner 예, 특정 응용 프로그램의 예상 입력과 관련하여 이러한 최적화를 수행해야합니다.
누적

아마 불가능합니다. 그러나 명확히하십시오 : 당신은 일반 (j, k)가 아닌 형식 (j, j + 1)의 비교 만 알고 있다는 것을 의미 했습니까? 예를 들어, 두 항목의 지수 비교 (j, j + 3)를 알고 있습니까?
Ron

답변:


34

(나는,나는+1)

1,2,,나는1,나는,나는+1,나는+2,,1,2,,나는1,나는+1,나는,나는+2,,

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.