1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Сортировать 10Гб

Тема в разделе "Софт", создана пользователем The Last Winged, 30.12.04.

  1. The Last Winged

    The Last Winged Активный участник

    11.862
    48
    Есть текстовый файл 10 Гб. Строки формата "1234567890123456 блабла".
    Надо сортировать строки по алфавиту. Метод пузырьков не подходит т.к.

    размер файла 10Гб. Ваши соображения...
    Если заюзать мускул, например...
     
  2. Kairel

    Kairel Активный участник

    7.977
    18
    Метод Шела?
     
  3. Rem

    Rem Активный

    4.704
    0
    Шелл один черт эффективен при размещении массива в памяти. Если думать лень - загрузить в любую БД, и сделать select * ... order by.
    Или нужно курсовую написать на предмет сбалансированого слияния? :-)
     
  4. Kairel

    Kairel Активный участник

    7.977
    18
    Rem

    Ты жесток!:biglaugh:
    А вообще в и-нете полно информации. Сейчас слегка пробежался дабы освежить память, и обнаружил, что обсуждается куча скриптов для сортировки больших баз. При помощи всевозможных алгоритмов.
     
  5. The Last Winged

    The Last Winged Активный участник

    11.862
    48
    Так, а как тогда лучше отсортровать 200килобайтовый файл? (Один из 65тысяч :) ) Читаем в массив, применяем встроенную функцию сортировки?
     
  6. AlTk

    AlTk Читатель

    10.699
    0
    уже было сказано выше - слиянием. кстати в память файл читать необязательно, можно использовать косвенную адресацию (только индексы/указатели перекидывать).
    в принципе можно и 10Гб файл отсортировать тем же слиянием, только с использованием MemoryMappedFile.
     
  7. Rem

    Rem Активный

    4.704
    0


    А то! Я Oracle DBA :-)
     
  8. The Last Winged

    The Last Winged Активный участник

    11.862
    48
    Слияние? Это метод Хоора?
     
  9. AlTk

    AlTk Читатель

    10.699
    0
    нет
     
  10. Hermes

    Hermes Активный участник

    11.670
    1
    The Last Winged
    Попробуйте STL использовать.