2011-03-17 8 views
1

에 여러 개의 키 중 하나를 찾기 내가매트릭스 여기

(15, 1, 7) 
(20, 5, 15) 
(7, 2, 33) 
... 
... 
과 같이 배열

의 X 번호가있을 수 있습니다

(33, 15, 1) 

에 맞게 찾고 있어요 숫자의 내 세트입니다

이 배열 조합은 기본적으로 매트릭스를 올바르게 나타냅니다.

이 숫자가 개최 의미, 그래서 그들은 분류되어서는 안 (가 데이터베이스에 특정 ID가 있습니다)

기본적으로 솔루션이 처음 한 번에 번호를 하나의 내 첫 세트를 통해 갈 필요하고 첫 번째 열에 일치하는 항목이 있는지 확인하십시오. 두 번째 열로 이동하십시오 (세 번째 열을 확인하지 않으면

). 따라서 33 == 15 -> 33 = = 7 -> 33 == 1 -> 33 == 5 등이 나오기 때문에 마지막 배열의 마지막 숫자와 일치하게됩니다.

모두 실패하면 내 검색 세트 (15)에서 두 번째 숫자로 이동하고 행렬의 시작 부분에서 시작하여 일치하는 항목을 찾기 위해 모든 것을 반복합니다.

이 문제에 대한 가장 효율적인 해결책은 무엇입니까? 처음에는 재귀를 생각하고 있었지만 지금은 확실하지 않습니다. 각 데이터 세트를 반복적으로 반복하는 것보다 나은 방법이 있어야합니다. 간단한 반복 과정은 숫자 세트의 크기에 따라 많은 오버 헤드가있는 것처럼 보입니다.

[편집] -

이 문제는 지금 정확히 3 열

하지만 행의 수는 이론적으로이 정말 데이터베이스에서 행 있으며, 몇 백으로 성장할 수에 제한이 크기, 더 많은 정보를 추가하면 행 수가 데이터베이스에서 어떤 행을 가져 왔는지, 구조화 된 방법, 해당 열의 색인 및 올바른 행을 제공하기위한 SQL 쿼리에 따라 달라지며 늘어납니다 (

+0

문제의 크기에 대한 아이디어는 어떤 유형의 구조가 설정하는 것이 유리한 것인지 이해하는 데 도움이 될 수 있습니다. –

답변

0

) 처리를 위해 100 줄의 모든 행을 클라이언트로 다시 가져 오는 것보다 빠릅니다. 또한 전체 데이터베이스가 관심있는 척과 비교하여 얼마나 큰지에 따라 달라집니다. DBMS는 일반적으로이 작업을 매우 잘 수행하며 행을 수집하는 전체 테이블에 걸쳐있는 여러 작업자 스레드로 수행합니다.