2011-02-11 4 views

답변

11

http://www.sgi.com/tech/stl/next_permutation.html를 참조하십시오

선형을. 최대 (마지막 - 처음)/2 스왑.

소스 코드를 보려면 시스템의 STL 헤더 파일을 살펴보십시오. 유닉스 계열 시스템에서는 /usr/include/c++/4.1.2/bits/stl_algo.h과 같은 곳을 찾아야 할 것입니다.

+3

실제로 선형보다 낫습니다. 그것은 상각 된 O (1)입니다 - 즉, 그것을 n이라 부르면! 시간은 n * n이 아닌 O (n!) 연산 만 필요합니다. [이 질문] (http://stackoverflow.com/questions/4973077/the-amortized-complexity-of-stdnext-permutation)을 참조하십시오. – ShreevatsaR

관련 문제