Автор
|
Тема: Алгоритм-поиск...
|
Joker |
опубликован 21-02-2001 21:14 MSK
Народ вот какой вопрос: Есть текстовый фаил с каким то там текстом пускай на латинском, но ето не важно, как отсортеровать этот фаил что бы все слова в нем были в алфовитном порядке расставлены ? Тфу сорри за коломбур....!!
|
OlegO
|
опубликован 22-02-2001 13:18 MSK
1. Первый этап это распоковка текста из файла, алгоритм прост читаем по символьно из файла или из памяти куда сохранил файл(так быстрее) если попадает в алфавит то Приплюсовываем к текущему слову, если нет и текущее слово не пусто, то получили нове слов добавляем его в п.2. и зануляем, и т.д. пока текст не кончится п.3. 2. (Зависит от варианта сортировки) слова можно сохранять например в массив. 3. Теперь когда текст распакован сортируем слова по алфовиту, например так for(int i=0; i<(MasLength-1); i++) for(int j=i+1; j<MasLength; j++) if(strcmp(Mas[i],Mas[j])>0) { /// Поменять Строки Местами } 4. Сохранить Массив в Файл. |
OlegO
|
опубликован 22-02-2001 13:25 MSK
Я конечно немного упростил, но суть таже. Безусловно можно и даже нужно оптимизировать все стадии это и распаковку текста, и сортировку, хотя и так будет работать. |
Elephant
|
опубликован 26-02-2001 01:23 MSK
В далеком наверное для Вас 1976 году вышла книга г-на Кнута "Искусство программирования, Том 3". Так вот, в этой книге можно найти описание нескольких различных методов внешней сортировки (то, что Вам нужно). В 2000 году вышло новое издание данной книги. Есть и другие книги. Зайдите в любой магазин технической книги и Вы увидите книги, посвященные различным алгоритмам. По моим скромным подсчетам, в Москве в феврале продавалось порядка 6-8 подовных книг. |
OlegO
|
опубликован 26-02-2001 12:44 MSK
Elephant полность с тобой согласен ... |