![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 19.08.2010
Сообщений: 1
|
![]()
Здравствуйте!
Есть задание по курсовой работе. Трудность в следующем:не понятен алгоритм выполнения.Что нужно делать сначала,что потом? если можете напишите.Код не нужен) Просто по пунктам что за чем следует. Вот собственно само задание: Реализовать блочную сортировку некоторого файла большого размера. Файлы создаются случайным образом и состоят из одного числового поля и одного строкового. Определить диапазон значений и диапазон для каждого блока. При чтении файла разбивать его на блоки, состоящие из двусвязных линейных списков с головой. Голова хранит указатель на первый и последний элементы списка. Затем методом включений отсортировать каждый список в порядке возрастания. Слить все списки в файл, получив упорядоченную последовательность. Предусмотреть работу в меню. Создать класс обработки списков. Заранее спасибо. ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Допустим структура файла состоит из записей с полями (int A, char B[10])
1) сначала определяемся как будем сравнивать, то есть как определить какая из записей больше. Например, запись больше если числовое поле больше, в случае равенства числовых полей, большей записью будет та у которой строковое поле длиннее. 2) находим минимальную(X) и максимальную(Y) запись в файле, получаем что диапазон значений равен [X, Y] 3) выбираем количество блоков исходя из разумности для данной задачи, например, пусть их будет 20. Создаем 20 списков. Делим диапазон значение на 20 одинаковых отрезков (или примерно одинаковых отрезков). То есть при чтении файла в первый блок засовываем те записи, кто мало отличается от минимальной (не более чем на 1/20 диапазона), во второй - тех кто чуть больше отличается от минимальной (более чем на 1/20 и не более чем на 2/20 диапазона) и т.д. 4) Теперь каждый список сортируем любым способом (по заданию методом включения) 5) Теперь записываем 1-ый список в фай, затем второй, третий и т.д. Всё, файл отсортирован |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца | немозг | Помощь студентам | 11 | 06.02.2010 21:57 |
Сортировка файлов в Explorer vs сортировка в Delphi | mutabor | Общие вопросы Delphi | 11 | 04.09.2009 14:32 |
Delphi Блочная запись | Pord | Помощь студентам | 2 | 08.11.2008 10:57 |
Блочная верстка | Demonichka | HTML и CSS | 2 | 12.07.2008 01:31 |