1
Armadillo 라이브러리에서 C++을 사용하고 있습니다.C++ Armadillo : 가장 가까운 이웃
숫자 순서로 정렬 된 nx1 열 행렬이 있다고 가정합니다. 예를 들어
mat X; X.randn(100,1);
mat X_sorted; X_sorted = sort(X);
cout << X_sorted << endl;
과 내가 가진 가정 변수
내가 원하는double y = 0.5;
:이 x_sorted(z)
가 Y에 가장 가까운되는 x_sorted
의 인덱스, z
을, 찾는 방법입니다 . 넥타이 (실제로는 제 경우에는 중요하지 않음)의 경우 더 큰 것을 선택하십시오. 그 일의
귀하의 솔루션은 한 줄에있는의 우아함이있다. 그러나 최선의 가능한 점근 시간의 복잡성은 없습니다. 배열에있는 모든 값을 변수와 비교하는 것은 점근 적 시간 복잡성'O (n)'을가집니다. 이진 탐색은 점근 적 시간 복잡성'O (log (n))'을 가질 것이다. – Svaberg