![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
программа на координаты [D2005]
opashka © (2013-12-02 11:59:00)раньше программировала в паскале. сейчас дали задачу на Delphi. помогите пожалуйста - язык для знаком лишь отчасти.
Задача.
Для задания координат точки на плоскости использовать запись с 2 полями.
1) Задать координаты не более 10 точек. Найти самые удаленные от начала координат точки
2) вывести список расстояний точек от начала координат, предварительно упорядочив его по убыванию
использование функций и процедур является необходимым условием
Dennis I. Komarov (2013-12-04 17:15:00) [1]
> http://www.guildalfa.ru/alsha/node/6
Шикарно!
:)
Jeer (2013-12-03 20:22:00) [2]Согласен.
Для студентов эта информация была не основной, да и здесь я привел "стандартный" вариант Shell-а от 1959 г. :)
Sha (2013-12-03 19:45:00) [3]Причем для малых массивов первый вариант даже чуть лучше.
Sha (2013-12-03 19:42:00) [4]> Jeer © (03.12.13 17:55) [28]
Я не о самом алгоритме, а о способе выбора приращений.
От него скорость сильно зависит.
Седжвик улучшал его дважды.
Первое улучшение (на которое дал ссылку) было самым значительным.
Но его вика почему-то забыла.
Второе еще совсем немного улучшает, не меняя O(). Но о нем все помнят.
Jeer (2013-12-03 17:59:00) [5]Сравнение:
http://s017.radikal.ru/i423/1312/4f/aa706f6001c9.jpg
Jeer (2013-12-03 17:55:00) [6]>Странно и в вике его нет почему-то, вот ссылка:
Да, вроде вполне известный алгоритм сортировки.
Дает гарантированное время, а, в случае сильно упорядоченных данных, даже лучше чем quick-sort.
Кроме Седжвика, были еще последователи, улучшавшие алгоритм тем или иным выбором дистанции.
http://sun.aei.polsl.pl/~mciura/publikacje/shellsort.pdf
Как-то, с одной из моих дипломных студенток, мы "нарисовали" тест-модуль различных видов сортировка для обоснования его выбора.
Наступило хорошее прояснение отличий.
http://s017.radikal.ru/i411/1312/a4/563377dffde9.jpg
Сравнительная таблица:
http://s020.radikal.ru/i715/1312/61/e5648201fda0.jpg
Вася (2013-12-03 17:41:00) [7]Не качается, а я надеялся увидеть код хуже чем мой...
Вася (2013-12-03 17:36:00) [8]Все, нашел
Вася (2013-12-03 17:35:00) [9]Дайте почитать!!!
Ega23 (2013-12-03 13:44:00) [10]ДА! Это оно!
Sha (2013-12-03 12:43:00) [11]IncDay dmi 05.01.03 20:21
При создании бухгалтерской программы я столкнулся с
необходимостью изменить значение даты (класс TDateTime) путем добавления количества дней. Но в Delphi готовой функции не оказалось. Просмотрев в Delphi7 исходный текст функции IncMonth (добавление месяцев к дате), я решил создать функцию IncDay (добавление дней к дате).
Если у кого-то возникла подобная проблема, готов поделиться "исходником".
Ega23 (2013-12-03 12:24:00) [12]
> У меня оно на стене висело.
> Всем кто приходил, включая начальство, говорили типа шедевр.
Вот и у меня также было. Сама функция была спасена, а вот обсуждение, к сожалению, кто-то выпилил.
Sha (2013-12-03 12:20:00) [13]> Ega23 © (03.12.13 12:13) [19]
Это я пропустил, жаль.
У меня оно на стене висело.
Всем кто приходил, включая начальство, говорили типа шедевр.
Кивали головой и уходили.
Пришлось снять, когда кое-кто из приходящих решил изучить код повнимательнее.
Sha (2013-12-03 12:15:00) [14]> Jeer © (02.12.13 15:21) [8]
Странно и в вике его нет почему-то, вот ссылка:
http://www.cs.princeton.edu/~rs/shell/paperF.pdf
Ega23 (2013-12-03 12:13:00) [15]
> ну так там в одном флаконе:
Нееее... Там были комментарии от автора IncDay. Типа, он в банковской сфере работает, отчёты какие-то клепает. И был неприятно удивлён: IncYear, IncMonth, etc - есть, а вот IncDay - нету. Решил восполнить пробел.
В общем, текст с побудительными мотивами доставлял не менее, чем сама IncDay.
Sha (2013-12-03 12:01:00) [16]> Ega23 © (03.12.13 10:46) [14]
ну так там в одном флаконе:
http://www.guildalfa.ru/alsha/node/6
Jeer © (02.12.13 15:21) [8]
Кстати, Седжвик рекомендует ряд шагов 4^(i+1) + 3*2^i + 1
Inovet (2013-12-03 11:34:00) [17]> [16] Ega23 © (03.12.13 11:25)
> Не нашёл.
Я недавно тоже только у Sha находил, но дальше и не искал. Такие шедевры должны в мировом пантеоне сакральных знаний храниться.
Ega23 (2013-12-03 11:25:00) [18]
> Неужели в сети не сохранилось.
Не нашёл.
Inovet (2013-12-03 11:19:00) [19]> [14] Ega23 © (03.12.13 10:46)
Неужели в сети не сохранилось.
Ega23 (2013-12-03 10:46:00) [20]
> Ага, тогда искал более быстрый вариант Now, и оно мне вспомнилось.
Я к сожалению не сумел сохранить описание к ней. Описание было не менее ржачное.