들어오는 데이터에 빠르게 응답해야하는 저전력 프로세서에서 실행되는 응용 프로그램이 있습니다. 데이터는 연관된 키와 함께 제공됩니다. 각 키의 범위는 0 - 0xFE (최대 0xFF)입니다. 데이터 자체의 크기는 1kB에서 4kB까지입니다. 시스템은 다음과 같은 데이터를 처리합니다.저전력 프로세서 용 빠른 검색 - 삽입 - 삭제 알고리즘
data in
key lookup -> insert key & data if not found
buffer data in existing key
일부 이벤트가 발생하면 키와 관련 데이터가 삭제됩니다.
우리는 솔루션의 몇 시운전됩니다
사전 할당
std::vector<std::pair<int,unsigned char *>>
를, 인덱스 위치를 기반으로 키 값을 보이는. 이진 정렬과 이진 검색과std::map<int, unsigned char *>
레드 - 블랙 트리
std::vector<...>
키의
삽입 -에 빨리 수있는 다른 알고리즘이 있습니까 검색 삭제?
감사합니다. 키 범위 [0, 0xFF)
에있는 경우
당신이 하나의 키에 대한 중복을해야 할 것, 또는 기존의 키를 사용하여 새 데이터가 이전 데이터를 대체합니다 : 그것은 나를라면, 난 그것을 간단하게 만들 것? –
저전력 프로세서에서 매우 작은 데이터 세트 (1 바이트 키)에 대해 이야기하고 있으므로, 알고리즘에 대한 기존의 알고리즘 성능 및 큰 O 표기법을 고려해야합니다. 이 모든 것은 데이터 세트가 무한대로 성장함에 따라 적용된다는 것을 기억하십시오. 작은 세트의 실제 성능은 이러한 패턴을 따르지 않습니다. 1) 또는 2)를 수행하고 성능을 분석하십시오. – TJD
@Mark - 단일 키, 새로운 데이터가 해당 키에 대해 버퍼 됨 – user626201