Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
1

Сортировка слов текстового файла путём слияния данных из файла и заданного внутреннего массива

27.12.2015, 00:49. Просмотров 1817. Ответов 7
Метки нет (Все метки)

Здравствуйте.

Имеется задание, которое я ни в коем случае не прошу за меня сделать. Мне непонятно пару моментов, которые бы мне хотелось пояснить с вашей помощью.

Цитата Сообщение от Задание
Написать программу, которая осуществляет сортировку слов текстового файла (одно слово в одной строке) путём слияния данных из файла и заданного внутреннего массива.

1. Исходный текстовый файл генерируется случайным образом: количество слов в нём случайно (до 10000) и сами слова сгенерированы при помощи случайных чисел.

2. Сортировка осуществляется следующим образом: даны два вспомогательных файл и некоторый внутренний массив. Сначала первая порция данных из исходного файла читается в память, и оттуда упорядоченно заносится во внутренний массив, для чего используется метод простых или бинарных вставок.

3. Далее из массива упорядоченные данные переписываются во вспомогательный файл. Затем следующая порция данных из исходного файла упорядоченно заносится в массив, после чего происходит слияние данных из внутренней структуры и ранее заполненного вспомогательного файла. Результат слияния заносится в другой вспомогательный файл. Так продолжается до тех пор, пока все данные не будут отсортированы.
Мне непонятно следующее:

1. "слова сгенерированы при помощи случайных чисел" - как это понять? Знаю, что можно завести алфавитный массив, а потом случайно перемешивать оттуда значения. Это имелось в виду?

2. "Сначала первая порция данных из исходного файла " - сколько в себя включает "порция"? На моё усмотрение?

3. И самое главное: каким образом происходит сортировка? Алфавитно относительно других слов/внутри каждого слова/алфавитно относительно других слов + внутри каждого слова?

К сожалению, мне негде и не у кого уточнить данные вопросы, а делать надо, как обычно, в темпе вальса, поэтому хотел бы спросить как поняли эти моменты вы.


Спасибо за внимание!

Добавлено через 10 минут
123
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2015, 00:49
Ответы с готовыми решениями:

Сортировка содержимого текстового файла методами пузырька, слияния, Шелла
#include <stdio.h> #include <stdlib.h> main() { int N,i; FILE *out; ...

Замена слов одного текстового файла словами из другого текстового файла
Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены...

Написать программу, которая удаляет из текстового файла предложения, состоящие из заданного количества слов
Есть программа, выводящая предложение, которое состоит из заданного количества слов. Что в ней...

Записать из одного текстового файла в другой только предложения, состоящие из заданного количества слов
Здравствуйте. Не могу понять в чем ошибка и правильно ли я вообще выполняю задачу. Нужна помощь в...

7
53 / 50 / 28
Регистрация: 20.05.2015
Сообщений: 256
27.12.2015, 01:10 2
Цитата Сообщение от UnityMan Посмотреть сообщение
1. "слова сгенерированы при помощи случайных чисел" - как это понять? Знаю, что можно завести алфавитный массив, а потом случайно перемешивать оттуда значения. Это имелось в виду?
2. "Сначала первая порция данных из исходного файла " - сколько в себя включает "порция"? На моё усмотрение?
3. И самое главное: каким образом происходит сортировка? Алфавитно относительно других слов/внутри каждого слова/алфавитно относительно других слов + внутри каждого слова?
1. Скорее всего берется большой символьный массив чаров и каждый элемент заполняется случайной буквой Примерно вот так:
C++
1
2
3
char mas[10000];
    for (int i = 0; i < 10000; i++)
        mas[i] = rand() % 27 + 97;
Но не забывайте ещё пробелы учесть между словами.
2. В данном случае думаю, не принципиально, можете брать хотя бы по одному слову.
3. В данном случае, я думаю, что по алфавиту, почитайте подробнее по поводу быстрой сортировки QuickSort.
1
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
27.12.2015, 01:17  [ТС] 3
Melvil,
Цитата Сообщение от Melvil Посмотреть сообщение
3. В данном случае, я думаю, что по алфавиту, почитайте подробнее по поводу быстрой сортировки QuickSort.
В задании про быструю сортировку ни слова не сказано. Указано лишь
Цитата Сообщение от UnityMan Посмотреть сообщение
упорядоченно заносится во внутренний массив, для чего используется метод простых или бинарных вставок.
И похоже, что как раз-таки само слово сортируется, т.е. сортировка внутри слова.
0
53 / 50 / 28
Регистрация: 20.05.2015
Сообщений: 256
27.12.2015, 01:23 4
Цитата Сообщение от UnityMan Посмотреть сообщение
И похоже, что как раз-таки само слово сортируется, т.е. сортировка внутри слова.
Проглядел про вставки, но тем не менее, представьте себе, у вас есть слова, записанные в хаотичном порядке, а вы возьмете и начнете сортировать их изнутри, в итоге ни одного слова не разобрать. В независимости от того, какой тип сортировки вы используете, результат по сути должен быть один и тот же. Так что - алфавит.
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
27.12.2015, 01:36  [ТС] 5
Melvil, но если Вы ещё разок внимательно вчитаетесь в задание, то увидите, что там происходит слияние из отсортированных порций, но ни слова не сказано, что надо эти порции сортировать друг относительно друга в алфавитном порядке. Тогда какой смысл проводить алфавитную сортировку в пределах одной порции?
Цитата Сообщение от Melvil Посмотреть сообщение
представьте себе, у вас есть слова, записанные в хаотичном порядке, а вы возьмете и начнете сортировать их изнутри, в итоге ни одного слова не разобрать
Представляю:
Цитата Сообщение от Порция 1 (изначальная)
bacdefd
debf
bdae
Цитата Сообщение от Порция 1 (остортированная)
abcddef
bdef
abde
Что не так?
0
53 / 50 / 28
Регистрация: 20.05.2015
Сообщений: 256
27.12.2015, 01:40 6
Цитата Сообщение от UnityMan Посмотреть сообщение
Что не так?
Были у вас слова:
Vanya
Petya
Dima
А стали:
aanVy
aePty
amiD
Но не отрицаю, возможно, вы и правы.
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
27.12.2015, 02:04  [ТС] 7
Melvil,
Цитата Сообщение от Melvil Посмотреть сообщение
Были у вас слова:
Vanya
Petya
Dima
Маловероятно, что радномизированные слова будут представлены чем-то что-то типа имен или других существующих слов.

Цитата Сообщение от UnityMan Посмотреть сообщение
происходит слияние из отсортированных порций, но ни слова не сказано, что надо эти порции сортировать друг относительно друга в алфавитном порядке. Тогда какой смысл проводить алфавитную сортировку в пределах одной порции?
А как тогда быть с этим?
Просто согласно Вашей логике должно получится что-то типа такого:
Порция 1 (изначальная)
nkoaer
bukg
ased
Порция 1 (осортированная)
ased
bukg
nkoaer
Порция 2 (изначальная)
boop
arttng
nolskf
Порция 2 (остортированная)
arttng
boop
nolskf
Результирующая порция
ased
bukg
nkoaer
arttng
boop
nolskf
Я прав?
0
53 / 50 / 28
Регистрация: 20.05.2015
Сообщений: 256
27.12.2015, 11:30 8
Цитата Сообщение от UnityMan Посмотреть сообщение
Я прав?
Посмотрел ещё раз, получается, что всё зависит от того какую порцию вы возьмете. Если рассчитывать, что порция больше одного слова, т.е. несколько, то вы правы, да.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 11:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сортировка данных по алфавиту из текстового файла
1. Помогите написать программу для сортировки по алфавиту данных из текстового файла 2. Написать...

Сортировка массива из текстового файла по возрастанию
Информация о наборе прямоугольных параллелепипедов записывается в текстовом файле figuri.in, каждая...

Сортировка массива из текстового файла по возрастанию
Сортировка массива из текстового файла по возрастанию Здравствуйте!Подскажите пожалуйста.У меня...

Сортировка данных из текстового файла методом пузырька
Помогите. Нужно создать windows forms application с 3 кнопками на ней. (загрузить, отсортировать,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.