0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 5
|
||||||
1 | ||||||
Выполнить слияние двух рассортированных бинарных файлов в третий упорядоченный файл05.01.2010, 20:32. Показов 4062. Ответов 9
Метки нет Все метки)
(
Доброго времени суток уважаемые форумчане!!!!
У меня есть следующая задача - Выполнить слияние двух рассортированных бинарных файлов в третий упорядоченный файл. Сортировок не использовать. Дополнительных массивов и файлов не использовать. В процессе работы пришел к тому что это можно сделать, если находить в каждом из файлов минимальный элемент, потом сравнивать 2 минимальных и записывать в третий файл в порядке возрастания. Далее аналогично, НО - есть проблемка - как организовать поиск минимума в файле через пользовательскую функцию, чтобы при последующей итерации не учитывались предыдущие найденные минимумы. Так ни к чему и не пришел, по-этому написал программу, которая работает через 2 промежуточных массива. Если есть мысли то буду рад помощи. Листинг ниже
0
|
|
05.01.2010, 20:32 | |
Ответы с готовыми решениями:
9
Из двух упорядоченных массивов составить третий упорядоченный массив Составить из значений двух массивов третий, также упорядоченный по возрастанию Записать в третий файл строки из первых двух файлов, чтобы они тоже располагались по алфавиту Слияние двух упорядоченных по убыванию массивов в один, упорядоченный по убыванию |
0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 5
|
|
05.01.2010, 20:41 [ТС] | 3 |
Извини но немного не понял - при поиске минимумов их значения будут записываться в структуру? А какой флаг добавлять в файл????
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
05.01.2010, 20:42 | 4 |
можно читать файлы и перематывать
по очереди просматривать файлы на минимальный элемент когда он найден, записывать его в результирующий файл, элемент сохранять искать следующий минимальный, который больше сохранённого выход: когда минимальный элемент, который больше предыдущего минимального элемента, не найден, а файлы закончились
0
|
![]() |
||||||
05.01.2010, 20:50 | 5 | |||||
0
|
0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 5
|
|
05.01.2010, 20:50 [ТС] | 6 |
Если не затруднит можно кусок кода?
Смысл вроде понятен...но как У меня так min1=minimum_ind(temp_1) значения берутся из массива, а как переделать чтобы брались напрямую из файла????
0
|
0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 5
|
|
05.01.2010, 21:11 [ТС] | 8 |
Не согласен. Я не могу их читать по одной просто потому что если загнать в файл вместо массива структуры то все равно нужно искать минимальный элемент из всех структур.
Но вообще идея отличная - попробую реализовать, тему пока прошу не закрывать
0
|
![]() |
|
05.01.2010, 21:18 | 9 |
еще бы знаки препинания, и тебе бы цены не было
![]() Добавлено через 2 минуты реализовывал несколько раз. про код не спрашивай, не помню даже в каких проектах. зато помню что вместо чтения поэлементно, использовал отображение файла в память. так же, если файл не слишком большой, то можно его весь отсортировать простым использованием qsort() $)
0
|
![]() 7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
06.01.2010, 17:05 | 10 |
Тебе нужно держать в памяти всего два элемента - один из 1-го файла и один из второго 2-го файл. Сравниваешь два этих элемента. Если меньше элемент из 1-го файла, то записываешь его в выходной файл и считываешь следующий элемент из 1-го файла. Если меньше элемент из 2-го файла, то записываешь его в выходной файл и считываешь следующий элемент из 2-го файла. Цикл останавливается если в одном из файлов закончились элементы. Тогда нужно просто переписать хвост из другого файла в выходной файл. Даю подсказку - все это тривиально.
0
|
06.01.2010, 17:05 | |
Помогаю со студенческими работами здесь
10
Даны два численных файла. Выполнить слияние этих файлов. Сохранить упорядоченно по возрастанию в третий файл исключая повторения Слияние 2х файлов в третий файл Все числа, содержащиеся в двух бинарных файлах одновременно, переписать в третий файл
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |