정수 배열 가 주어지면 및 와 같이 세 개의 인덱스 및 찾는 알고리즘의 존재를 증명하거나 반증하고 싶습니다 선형 시간으로 (또는 그러한 트리플이 없다는 것을 알게 됨).i , j k i < j < k A [ i ] < A [ j ] < A [ k ]
이것은 숙제 문제가 아닙니다. 나는“그런 알고리즘을 구현하려고 시도해라”라는 프로그래밍 포럼에서 그것을 보았다. 나는 다양한 실험 후에 불가능하다고 생각한다. 내 직감이 그렇게 말하지만 실제로는 아무것도 계산하지 않습니다.
공식적으로 증명하고 싶습니다. 어떻게합니까? 이상적으로 단계별로 증명 된 증거를보고 싶고, 만약 당신이 그렇게 기울어 졌다면 일반적으로 이와 같은 간단한 질문을 증명 / 반증하는 방법에 대한 설명이 있습니다. 도움이된다면 몇 가지 예 :
[1,5,2,0,3] → (1,2,3)
[5,6,1,2,3] → (1,2,3)
[1,5,2,3] → (1,2,3)
[5,6,1,2,7] → (1,2,7)
[5,6,1,2,7,8] → (1,2,7)
[1,2,999,3] → (1,2,999)
[999,1,2,3] → (1,2,3)
[11,12,8,9,5,6,3,4,1,2,3] → (1,2,3)
[1,5,2,0,-5,-2,-1] → (-5,-2,-1)
나는 에 대해 반복 할 수 있다고 가정했으며 , (현재 )가있을 때마다 새로운 트리플을 만들고 배열에 밀어 넣습니다. 우리는 트리플 중 하나가 완료 될 때까지 각 트리플을 계속 스테핑하고 비교합니다. 이처럼 그래서 , ! 그러나 트리플 배열의 트리플 수가 최악의 경우 입력 목록의 크기에 해당하므로 보다 더 복잡하다고 생각 합니다.i < j j O ( n )[1,5,2,0,-5,-2,-1] → 1..2.. -5.. -2.. -1
[1,5,2,0,-5,-2,3,-1] → 1..2.. -5.. -2.. 3