Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм сортировки 3 чисел...   Найти похожие ветки 

 
ArtemESC ©   (2006-05-16 12:30) [0]

Помогите найти самый простейший сабж...


 
Megabyte ©   (2006-05-16 12:41) [1]

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


 
Jeer ©   (2006-05-16 12:42) [2]

ArtemESC ©   (16.05.06 12:30)

каких чисел (тип)


 
Игорь Шевченко ©   (2006-05-16 12:42) [3]


> Помогите найти самый простейший сабж...


Сравнением ?


 
TUser ©   (2006-05-16 12:49) [4]

Что значит простейший? Поменьше текста, побыстрее, in place, поменьше сравнений, поменьше перестановок, - какой конкретно праметр должен быть оптимизирован?


 
ArtemESC ©   (2006-05-16 15:06) [5]

TUser ©   (16.05.06 12:49) [4]
поменьше сравнений


 
MBo ©   (2006-05-16 15:11) [6]

Для сортировки трех чисел нужно 258 сантибит информации, так что нужно придумать метод, использующий в худшем случае три, в лучшем - два сравнения.
Для тренировки попробуй начать с сортировки двух чисел.


 
Чапаев ©   (2006-05-16 16:10) [7]


> Для тренировки попробуй начать с сортировки двух чисел.

А дальше рекурсией? ;-)


 
Marser ©   (2006-05-16 16:27) [8]

Необходимо минимум два сравнения, достаточно трёх.


 
Slym ©   (2006-05-16 16:43) [9]

следующий вопрос: как сравнить 2 числа :)


 
Сергей М. ©   (2006-05-16 16:48) [10]


> ArtemESC ©   (16.05.06 12:30)


Мешочек с бочонками а-ля "Русское лото" - лучший друг и помошник тех кто не желает изучать теорию.


 
oldman ©   (2006-05-16 18:38) [11]

пишешь их в базу dbf
потом досовской СУБД пишешь "sort on"
потом... идешь грузить дрова... поскольку вопросики у тебя...


 
icWasya ©   (2006-05-17 12:32) [12]

>Slym ©   (16.05.06 16:43) [9]
>следующий вопрос: как сравнить 2 числа :)

procedure Sort_2(const A,B:Double;Var Max,Min:Double);
var
 AB:Double;
begin
 AB:=A+B;
 Max:=(AB+Abs(A-B))/2;
 Min:=AB-Max;
end;

и ни одного сравнения!


 
Gero ©   (2006-05-17 12:50) [13]

Не пойму: ты под пазитрона косишь?


 
icWasya ©   (2006-05-17 13:37) [14]

Извиняюсь

procedure Sort_2(const A,B:Double;Var Max,Min:Double);
var
AB:Double;
begin
AB:=A+B;
Max:=(AB  -  Abs(A-B))/2;
Min:=AB-Max;
end;


 
KSergey ©   (2006-05-17 18:01) [15]

> Abs(A-B)

Вот оно - скрытое сравнение. Или можно без сравнения реализовать Abs()?


 
MBo ©   (2006-05-17 18:07) [16]

>KSergey ©   (17.05.06 18:01) [15]
Для вещественных - можно, старший бит обнулить.


 
Gero ©   (2006-05-17 18:07) [17]

Sqrt(Sqr(X));


 
MBo ©   (2006-05-17 18:16) [18]

а для целых, если не ошибся - ((I sar 31) xor a) + I shr 31
sar - сдвиг с распространением знака


 
MBo ©   (2006-05-17 18:24) [19]

пардон, xor I в скобке


 
ArtemESC ©   (2006-05-17 21:58) [20]

MBo ©   (17.05.06 18:24) [19]
Да я вообщем разобрался -
сам нашел самый эффективный алгоритм (если кому надо):
      1) Сортируем второе и первое...
      2) Сортируем второе и третье ...
      3) Опять сортируем второе и первое...
 Проще не найдете!!!

Вопрос вообще для ленивых, а я стал настолько ленивым, что
 чуть что, так сразу к знатокам, а мастера правильно делают, что
сразу не делятся - убиваете в людях лень...АХ... Чтобы все люди стали
 трудягами - и работали как кони...


 
Marser ©   (2006-05-17 23:37) [21]

Странный ты... Разве ж это тема для обсуждения?


 
Kolan ©   (2006-05-17 23:53) [22]

Двух дней работы эта задача не стоила, потерял ты больше чем выиграл ИМХО.


 
Сумчатое   (2006-05-18 01:39) [23]


> icWasya ©   (17.05.06 12:32) [12]
>
> >Slym ©   (16.05.06 16:43) [9]
> >следующий вопрос: как сравнить 2 числа :)
>
> procedure Sort_2(const A,B:Double;Var Max,Min:Double);
> var
>  AB:Double;
> begin
>  AB:=A+B;
>  Max:=(AB+Abs(A-B))/2;
>  Min:=AB-Max;
> end;
>
> и ни одного сравнения!
>


Если A и B равны MaxDouble, то получишь ошибку.


 
MBo ©   (2006-05-18 06:33) [24]

>ArtemESC ©   (17.05.06 21:58) [20]
третье сравнение не всегда нужно.



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

Форум: "Прочее";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.021 c
2-1148567863
GreyT
2006-05-25 18:37
2006.06.11
Координаты курсора


2-1148273168
petvv
2006-05-22 08:46
2006.06.11
Пустые поля после выполнения запроса


3-1145436221
Alek
2006-04-19 12:43
2006.06.11
Строка в блоб поле....


2-1148313933
Cerberus
2006-05-22 20:05
2006.06.11
Как удалить все пробелы в строке.


15-1147817991
Германн
2006-05-17 02:19
2006.06.11
Есть ли тут кто-нибудь из Димитровграда?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский