Skiena 's Algorithm Design Manual을 읽었으므로이 문제를 해결할 수 없습니다.선형 시간에 배열을 정렬하는 알고리즘
배열 A가 각각 빨간색, 흰색 또는 파란색 인 n 개의 요소로 이루어져 있다고 가정합니다. 모든 붉은 색이 빨간색 흰색에 대한 정확하고 효율적인 알고리즘을 찾기 모든 유일한 작업은 키에서 허용 블루스 있습니다
Examine(A,i) { report the color of the ith element of A.
Swap(A,i,j) { swap the ith element of A with the jth element.
전에 오는 모든 백인, 이전에 올 수 있도록 우리는 요소를 정렬 추구 - 파란색 정렬. 선형 시간 솔루션이 있습니다.
quicksort를 사용하여 시도해 보았습니다. 3 피벗에서 해결할 수 있어야하지만 빠른 정렬에서 복제본을 볼 때 무엇을해야할지 모르겠습니다.
그래서 어떻게 접근합니까? 이제는 공식적으로 접근이 없습니다. 그건 그렇고, 나는 단지 인터뷰를 준비하려고합니다. – NoNameY0
O (n)의 각 색상의 수; 색인을 수정하십시오; O (n)에 따라 색상을 배치하십시오. – SparKot
네덜란드 깃발 알고리즘에 대한 Google 또한. –