R에서 우선 순위 큐를 생성해야하는데, 여기서 OPTICS 클러스터링 알고리즘에 대해 정렬 된 시드 개체 (또는 개체 인덱스)를 배치합니다.OPTICS 구현을위한 R의 우선 순위 큐
하나의 가능성은 배열 표현과 힙을 구현하고, 각 삽입에 힙 배열을 전달 키 호출을 감소하고, 변경된 배열을 반환하고 호출하는 함수에 재 할당하는 것입니다. 이 경우 재 할당 작업으로 인해 성능이 매우 떨어지고 삽입 또는 감소 작업이 실행될 때마다 전체 배열을 호출하기 위해 한 번씩 두 번 복사하고 다시 한 번 재 할당하려면 한 번만 복사해야합니다.
또 다른 가능성은 힙 작업을 호출하는 대신 함수 내부에서 코딩하는 것입니다. 이렇게하면 코드 반복과 성가신 코드가 발생합니다.
액세스와 같은 어떤 포인터가 거기에 우리가
C
에 내가 R의 S3 또는 S4 클래스의 사용자 정의 함수를 선언 할 수처럼? 이 경우에는 이러한 함수에 대한 호출이 반환 된 후에도 동일한 재 할당이 필요하다고 생각합니다 (C++/Java 클래스가 아닌 객체에서 작동합니다.)큐에있는 객체를 삽입하고 추출 할 수 있습니까?
O(log(n))
R에 시간이 있습니까?각 삽입 후에 명시 적으로 정렬을 제외하고 OPTICS 알고리즘에서 개체의 도달 거리에 따라 우선 순위 기반 삽입 및 제거를 유지하는 목표를 달성 할 수있는 다른 방법이 있습니까?
[R5 클래스] (https://github.com/hadley/devtools/wiki/R5)는 개체 수정시 복사본을 피할 수 있도록해야합니다. –
이 토론을 보셨습니까? (http://www.mail-archive.com/[email protected]/msg108876.html) – nograpes
nograpes : 대기열 구현이 도움이되지 않습니다. Vincent Zoonekynd : C++/Java 클래스에 훨씬 더 가까이있는 유용한 것처럼 보이지만 자세한 내용을 알아야합니다. – phoxis