두 개의 정수가 주어질 때 이진 상태를 유지하는 "효율적인"방법을 찾고 있습니다. 이 두 정수 A와 B를주는 A는 항상 B보다 작고 포함 할 값의 범위는 0에서 N까지입니다. 정수 N은 2보다 크고 256보다 작습니다.Undirected Pair State
간단한 해결책은 다음과 같습니다. 부울 값의 2 차원 배열을 만들지 만 B가 A보다 작거나 같은 경우 사용하지 않는 값이 있으므로 배열의 절반 이상을 사용하지 않습니다.
메모리를 적게 사용하는 방법을 알고있는 사람이 있습니까? 여전히 "빠르다"?
b를 왼쪽으로 8 비트 씩 이동하여 두 정수를 하나의 정수 (따라서 하나의 배열 인덱스)에 저장할 수 있고 함께 또는 함께 입력 할 수 있습니다. –
@Gabe : 작동하지 않습니다. (0,1) = 0, (0,2) = 0, (1,2) = 1 – Mike
"바이너리 상태를 유지 하시겠습니까?" 누가 이것을 쓰며, 얼마나 자주? 누가 그것을 읽고, 얼마나 자주? 여러 쌍을 저장하고 있습니까, 아니면 하나만 저장하고 있습니까? 이 프로세스의 어떤 부분이 "빠름"해야합니까? –