Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка в порядке убывания, запарился :( 
:(
    Опции темы
mvdr
  Дата 13.7.2005, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



Вот смысл: есть файл с числами, записанными по одному на строке. В ходе исполнения этот файл пополняется новыми данными (новая строка с новым числом).
Это число может быть больше поледнего( наименьшего).
Задача: отсортировать сей список, чтобы числа стояли в порядке убывания.

Числа - integer


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Chrisstoff
Дата 13.7.2005, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.5.2005
Где: Hell... жудкое ме сто

Репутация: нет
Всего: 1



Один вопрос ... файло типизированное или просто текстовое ..?
PM MAIL ICQ   Вверх
vadims
Дата 13.7.2005, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



В чем сложность то ???

Сортировка файла который потенциально нельзя закачать в память ???

Для этого существует 'ленточная' сортировка - файл разбивается на блоки - каждый из которых сортируется в памяти и сохраняется во временном файле.

Сохраняем максимальное значение для каждого блока, по которым выбираем блок с которого начинаем записывать в результирующий файл
Каждое число из 'рабочего' блока сравниваем со списком максимальных, если больше - записываем в 'результат', если меньше - меняем рабочий блок

Или в чем то другом проблема ???





--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Yanis
Дата 13.7.2005, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



2 Femida
А почему бы сразу не реализовать добавление числа перед самым большим числом в файле?

Цитата
Числа - integer
Это как?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
vadims
Дата 13.7.2005, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



Цитата(Yanis @ 13.7.2005, 07:37)
добавление числа перед самым большим числом в файле
А это как ???



--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Yanis
Дата 13.7.2005, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(vadims @ 13.7.2005, 07:41)
А это как ???

Просто с самого начала в файл записывать числа по порядку, т.е. по убыванию. Что непонятного?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Петрович
Дата 13.7.2005, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Цитата(Yanis @ 13.7.2005, 08:44)
Просто с самого начала в файл записывать числа по порядку, т.е. по убыванию. Что непонятного?

Сказанно же что:
Цитата
В ходе исполнения этот файл пополняется новыми данными (новая строка с новым числом).



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
vadims
Дата 13.7.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



Петрович
ИМХО: В этом варианте только перезаписывать весь файл - иначе как еще ты после строк

4
356
879

всунешь строку 400

Тогда вообще проблемы не вижу - простая реализация руьинных опреаций


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Петрович
Дата 13.7.2005, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Цитата(vadims @ 13.7.2005, 10:17)
ИМХО: В этом варианте только перезаписывать весь файл - иначе как еще ты после строк

Вот и я о том же


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
mvdr
Дата 14.7.2005, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



Как говорится - утро вечера мудренее smile
Решил действовать так: записывать числа в Мемо, там сортировать, а потом это писать в файл.

Это просто мысля стукнула - пошел реализовывать


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
mvdr
Дата 15.7.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



постаивим вопрос по другому: КАК отсортировать? (пробовал через массив - нифига), как только не извращался


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Akina
Дата 15.7.2005, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Femida
Давай поставим вопрос так - а сколько их, этих твоих integer-ов, может быть по максимуму?
И второй вопрос - чем оправдано требование что это ОДИН файл? Возможен вариант, скажем, сотни файлов, при слепливании которых в нужном порядке получится требуемый?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
CosmoMan
Дата 15.7.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 12.7.2005
Где: Харьков

Репутация: 1
Всего: 0



Цитата
пробовал через массив - нифига

Мало пробовал.

Предлагаю уникальный алгоритм на Delphi с использованием массивов.

Код

const NumOfArray = 30; //или сколько хочеш
var
a, b  :array of Integer;
i, j    :Integer;
num :Integer;
begin
  SetLength(a,NumOfArray+1); //мы без 0-го элемента обойдёмся 
  SetLength(b,NumOfArray+1);
  for i := 1 to NumOfArray do
  begin
    //здесь инициализируеш свой массив
  end;
  for i :=  1 to NumOfArray do
  begin
    for j := 1 to NumOfArray do
    begin
      if a[i] > a[j] then num := num + 1;
    end;
    b[num + 1] := a[i];
    num := 0;
  end;
  SetLength(a,0); //память дороже
  //b - отсортирован по возрастанию
  //ставиш в условии a[i] < a[j] и получаеш по убыванию
end;


PM MAIL   Вверх
Akella
Дата 15.7.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



PM MAIL   Вверх
mvdr
Дата 15.7.2005, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



Цитата(Akina @ 15.7.2005, 18:05)
сколько их, этих твоих integer-ов, может быть по максимуму?

Это типа статистики, т.е. сыграл игру - записался результат.

Добавлено @ 17:26
CosmoMan, сэнкс


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.