Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Ставим рекорд!   Найти похожие ветки 

 
NoviceA   (2003-10-31 11:26) [0]

Мастера, нужен алгоритм сортировки. Задача - отсортировать массив указателей на строки. Условие такое: конечно, рекурсия, и для подсчета итераций в функцию сортировки ставится глобальная переменная, увеличивающаяся на единицу при каждом обращении. Нужно разработать алгоритм, в котором эта переменная была бы минимальной. Размер функции не имеет значения. Выглядеть все это должно примерно так:
входные параметры Функции: указатель на массив указателей на строки и длина этого массива в элементах. Чтобы обеспечить гибкость (сортировать не только строки, а, допустим, числа), внутри этой функции вызывается функция сравнения (в нашем случае указателей на строки; если нужно будет отсортировать числа, вместо нее можно будет подставить функцию, которая сравнивала бы указатели на целые числа).
Помогите пожалуйста! Нужен оптимальный алгоритм с наименьшим числом итераций.


 
Brahman ©   (2003-10-31 11:35) [1]

QuickSort


 
Romkin ©   (2003-10-31 11:37) [2]

Вообще-то string сама по себе указателем является :)))
Во-вторых, почему обязательно рекурсия?
В-третьих, обычно алгоритмы оценивают по их асимптотике, так что я не совсем понял условие
В-четвертых, в demos/threads уже есть QuickSort с асимптотикой О(NlogN)
В-пятых, в частных случаях можно сделать O(N)
В-шестых, Кнута еще никто не отменял, рекомендую почитать третий том
В-седьмых...


 
Romkin ©   (2003-10-31 11:38) [3]

В-седьмых, почему-бы не глянуть в UBPFD?


 
pasha_golub ©   (2003-10-31 12:00) [4]

Сдается мне, что пришло время олимпиад. Сорри за оффтопик


 
Думкин ©   (2003-10-31 12:17) [5]

В-восьмых, каков линейный порядок для указетелей на строки?


 
NoviceA   (2003-10-31 12:18) [6]

Мужики, вы в остроумии соревнуетесь?..
Или может, поймете, что мне это ПРОСТО НАДО и нет времени чтобы самому написать? Так бывает, уж поверьте. Попросту припело. Иначе бы я не стал сюда писать.
Разве сложно выложить алгоритм?


 
Brahman ©   (2003-10-31 12:20) [7]

Еще раз
QuickSort в classes.pas


 
Думкин ©   (2003-10-31 12:21) [8]

Мы тебе верим, и я удивлен, что это еще не в "Потрепаться".


 
Zacho ©   (2003-10-31 12:21) [9]


> NoviceA (31.10.03 12:18) [6]

Зачем выкладывать ? Он у тебя уже есть, см. Romkin © (31.10.03 11:37) [2] В-четвертых, ...


 
VMcL ©   (2003-10-31 12:21) [10]

>NoviceA (31.10.03 12:18) [6]

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

2. Тут тусуются люди, которые могут помочь, но не обязаны это делать.

Sincerely mine.


 
NoviceA   (2003-10-31 12:42) [11]

>> VMcL: Я не плачу денег за то, что могу сделать сам. Это во-первых. Во-вторых, я не думаю, что ты настоолько крут, чтобы выступать с такими заявлениями про "заплатить".

Если совсем честно - позвонила знакомая, ей это нужно в течение 3-х часов. потому и написал. попросила, я всего лишь передаю ее просьбу. проверяться правильность будет в делфи, который сейчас у меня не установлен даже и посмотреть демки у меня сейчас негде.


 
MeF88 ©   (2003-10-31 12:55) [12]

HeapSort рулит.
algolist.manual.ru


 
Serginio666   (2003-10-31 13:18) [13]

Вообще алгоритм вставками StaigthMerge по моему самый лучший.
Всего в 1.5 раза уступая QuickSort. Но у QuickSort есть один большой недостаток когда много дублей и поиск половмнного значения в алгоритме не срабатывает (то же и со строками начинающихся с одинаково).
У StaigthMerge количество переносов N *Lg(N) а сравнений дажк меньше. Минус нужен второй массив.
Нужно для каждого случая подбирать свой алгоритм.



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-78988
Татьяна
2003-11-14 15:04
2003.11.24
TF1Book


3-78754
Vemer
2003-11-03 12:58
2003.11.24
Sweep БД из-под Delphi.


1-78919
Alex2
2003-11-12 11:44
2003.11.24
Не могу отыскать координаты


1-79033
Тимохов
2003-11-13 13:04
2003.11.24
Как сделать аналог packed record только для классов.


1-79005
Dark Elf
2003-11-14 11:16
2003.11.24
Отображение даты