나는 키가 64 비트 해시이고 값이 double 인 레코드 (키 - 값)를 저장하기 위해 leveldb을 사용하고 있습니다. 유추하기 : 64 비트 해시는 고객의 고유 ID이고 이중은 계정 잔액 (계정에 얼마나 많은 돈이 있는지)이라고 생각하십시오. 계정 잔액별로 데이터베이스를 정렬하고 가장 높은 계정 잔액을 가진 고객을 먼저 나열하려고합니다. 그러나 데이
외부 정렬을 구현하려고하는 Im. 처음에는 파일에서 N 정수 (고정 메모리에 따라 고정)를 읽어야합니다. 따라서 quicksort를 적용한 다음 병합 프로세스를 계속 진행할 수 있습니다. 나는이 두 가지 방법을 생각할 수 있습니다 는 N 정수에게 파일을 하나씩 읽고으로 정렬 한 후 배열에 넣어. 대량의 데이터를 큰 문자 배열로 읽어 들인 다음 sscanf를
많은 양의 데이터가있는 파일이 있는데, 주어진 시간에 메모리의 일부분 만 데이터를 정렬하여 정렬하려고합니다. 병합 정렬은 외부 정렬에 널리 사용되는 것으로 나타났습니다.하지만 힙 (최소 또는 최대)으로 수행 할 수 있는지 궁금합니다. 기본적으로 내 목표는 100 개 항목 목록에서 10 개 항목을 메모리에 10 개 이상 보유하지 않고 최상위 항목 (임의의 숫
약 10 억 개의 레코드 (각각 4 개의 정수를 포함)가있는 큰 파일을 정렬하려고합니다. 파일의 크기는 50GB 이상으로 증가합니다. 내 코드를 4 억 개의 레코드 (약 6GB 파일)로 테스트하고 있습니다. 내 디스크 구성은 다음과 같습니다 disk=/var/tmp/stxxl,50G,syscall delete
내 기계 16 기가 바이트 RAM을 가지고
원래 문제는 다음과 같습니다. -2P31 ~ 2^31-1 (정수)의 1PB 크기를 정렬하려면 각기 1TB의 디스크 공간과 16GB의 메모리 공간이있는 1024 대의 컴퓨터가 있어야합니다. 디스크 속도가 128MB/s (r/w)이고 메모리 속도가 8GB/s (r/w)라고 가정합니다. CPU 시간은 무시할 수 있습니다. 단순화를 위해 네트워크 전송 시간을 무시
두 번째 필드를 기반으로 파일의 내용을 정렬합니다 (예 :. 입력 파일 : Jervie,12,M
Jaimy,11,F
Tony,23,M
Janey,11,F
출력 파일 : 우리는 외부 종류를 사용할 필요가 Jaimy,11,F
Janey,11,F
Jervie,12,M
Tony,23,M
. 입력 파일의 크기는 4GB 일 수 있습니다.
0과 1 사이의 무작위로 두 배로 가득한 이진 파일에 외부 삽입 정렬을 수행하려고합니다. "value"와 "temp"가 할당 된 후 println 문을 추가했습니다. 그들이 반복 할 때마다 동일한 값을 얻는 것처럼 보입니다. 파일을 제대로 탐색하지 않는다고 생각합니다. public class ExternalFileSort
{
public sta