ID가 많아서 임시 목적으로 저장하고 일부 레코드를 검색해야합니다. Perl에서이 작업에 적합한 데이터 구조는 무엇입니까? 해시 나 배열을 사용해야합니까, 아니면 효율적으로이 모듈을 사용할 수 있습니까?레코드 검색을위한 최상의 데이터 구조
기록은 4343, 34343, 34343, 2323, 232, ...
입니다.
ID가 많아서 임시 목적으로 저장하고 일부 레코드를 검색해야합니다. Perl에서이 작업에 적합한 데이터 구조는 무엇입니까? 해시 나 배열을 사용해야합니까, 아니면 효율적으로이 모듈을 사용할 수 있습니까?레코드 검색을위한 최상의 데이터 구조
기록은 4343, 34343, 34343, 2323, 232, ...
입니다.
레코드 레이아웃에 관한 정보는 사람들을 돕는 데 많은 도움이 될 것입니다. 당신의 기록이 ID 번호에 연결되어있는 경우에 당신은
my %records;
$records{ $id_number } = "Record for $id_number";
## OR
$records{ $id_number } = ['Record', 'for', $id_number];
이것은 당신이 조회 할 수 있도록 키와 'ID'로 해시를 사용하고 문자열로 기록 또는 해시 값으로 배열 참조를 저장할 수 있습니다 id는 복잡성 O (1)이고 해당 레코드를 쉽게 조작 할 수 있습니다. 해시의
# Assuming the records are stored in @records
for my $record (@records) {
$recStore{$record}++;
}
# To search for a record
my $recToFind = 4343;
my $recExists = $recStore{$recToFind} || 0;
키는 아이디의 데이터베이스에서 검색하고 해당 값은 존재에 대한 기록을 반복하기위한 $ recExists가 1보다 클 수 있도록, ID가 발견 된 횟수이며, 0과 같을 것입니다. 숫자로 정렬 된 모든 ID의 목록을 얻으려면 숫자로 쓸 수 있습니다.
my @sortedID = sort {$a <=> $b} keys %records;
원하는 작업이 명확하지 않습니다. 어떤 유형의 데이터를 저장하고 어떻게 액세스 할 것인지 설명 할 수 있습니다. – hillu
나는 10000 개의 레코드와 하나의 데이터 strcuture에 저장하고 그 레코드를 검색하고 싶습니다 – joe
ID를 가지고 있고 d 개의 데이터베이스에서 반복하고 하나의 데이터 strtucure에 저장하고 레코드 일부를 검색합니다 – joe