goto - с любимыми не расставайтесь, или break не тащит

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 22.11.2020 22:04:08

Сквозняк писал(а):Человек дружащий с логикой поостерёгся бы фразы " на любых данных".

Даже так? Ну, ладно, пусть входной массив содержит 8 элементов, сколько раз выполнится внутренний цикл?(подсказка, до 49 считать умеешь?)
Сквозняк писал(а):Внезапно, бывают задачи, на которых нужно сортировать массивы, длина которых редко доходит до полусотни, даже до четверти редко доходит. Соответственно, квадратичный цикл выполняется быстро. Но не только его время нужно считать, но и затраты системы на разворачивание в рабочее состояние сортировальной машины - выделение ресурсов, возврат ресурсов в систему. Одни загрузки выжрут сколько-то времени и машинных мощностей. И вместе с накладными расходами алгоритм с лишним кодом может быть медленнее, особенно, если выполняется на менее крутом железе и других системных библиотеках.

Да-да, а ещё зима, ковид-19, то, сё...Короче я тебя понял, про совет не забывай.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Сквозняк » 23.11.2020 03:23:26

мимо_проходил писал(а):Даже так? Ну, ладно, пусть входной массив содержит 8 элементов, сколько раз выполнится внутренний цикл?(подсказка, до 49 считать умеешь?)


Никаких ну. 2 это тоже число и оно пригодно для длины массива. :mrgreen: А массив такой длины пересчитывается вообще без квадратичного цикла. У математиков совсем крыша едет, считают что-то, а объяснить что оно обозначает в реале, простым человеческим языком, так чтобы стыдно не было, и не могут. Логикам, же это понятно с полтыка - это перекладывание пузырьков пинцетиком, поштучно. А кто большую кастрюлю с пузырями перемешивает таким инструментом? Для неё уже поварёшку можно применять! Берём массивчик, зачерпываем в него с начала, а потом прогоняем до конца обрабатываемого массива, мешаем только то что подходит по диапазону, а потом сортируем в поварёшке и вываливаем в начало. В следующия раз черпаем поварёшкой на шаг дальше, и так пока всё не пересортируется. А очень большие поварёшки разбиваем на сектора и смешиваем данные в нужном секторе. Если ещё увеличить поварёшку, то сектора объединяем в кластеры. Тут уже простой формулой для описания процесса не перебьёшься. Ну а для мелкой миски такой комбайн использовать нафейхуа? Посему после апгрейда сортирующая процедура должна смотреть на объём работы и выбирать инструментарий. И уже закодив такой сортировочный комбайн можно смотреть в каком месте его можно подкрутить.

мимо_проходил писал(а):Да-да, а ещё зима, ковид-19, то, сё...Короче я тебя понял, про совет не забывай.


Как только сможете посоветовать что-нибудь умное, так сразу. Пока что у меня программы тормозят на загрузке больших объёмов данных и на перекачке из потока в поток а не на их сортировке, что показывает, что она не всегда главное.

Добавлено спустя 35 минут 3 секунды:
zub писал(а):"формкреате" вызывается когда форма еще недоконца создана, нефиг там ее размеры ковырять. на других виджсетах ошибки скорее всего небудет

Вот именно что нужно брутфорсить события формы на предмет "повалится/не повалится", а потом дрожать что потом и на этом событии тоже станет валиться. Каких-то железных стандартов на этот счёт я не читал, потому надёжность использования загрузки данных дочерней формой в себя, через события происходящие автоматически, писана вилами по воде. В "умных" же книжках для юных падаванов предпочитают решать формулы на паскале вместо изучения основ построения сложных и надёжных приложений.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 23.11.2020 07:56:32

Сквозняк писал(а):2 это тоже число

Так держать! Скоро и про ноль узнаешь.
Сквозняк писал(а):Как только сможете посоветовать что-нибудь умное, так сразу.

Умное умным советуют.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение sign » 23.11.2020 13:09:49

Сквозняк писал(а): У математиков совсем крыша едет, считают что-то, а объяснить что оно обозначает в реале, простым человеческим языком, так чтобы стыдно не было, и не могут.

Программист без знания математики - чистый индус.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 23.11.2020 13:58:22

sign, кажется тут более тяжёлый случай, чем ты описал. Он ведь бахвалится своим невежеством.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 23.11.2020 15:46:42

sign, индусы тоже наверняка знали/знают математику. Только им нужно было больше текста, а не рабочей программы. )))
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение bormant » 23.11.2020 20:17:29

мимо_проходил писал(а):Твой пупырёк на любых данных работает за O(N^2).

Так он тут на любых данных выполняет лишние сравнения, внутренний цикл всегда до Length(v)-2, несмотря на то, что с каждым шагом внешнего цикла все более длинный хвост не нуждается в повторных сравнениях (в этом внутреннем цикле элементы "тонут").

Если же вернуться к остановке при обнаружении отсортированности (а заодно и исключению просмотра заведомо отсортированного фрагмента), то она все-таки чего-то стоит (одного присваивания на каждый обмен):
Код: Выделить всё
type TElement=Byte;
procedure BubbleSort(var a: array of TElement);
var
  i, j, n: Integer;
  t: TElement;
begin
  n:=Length(a)-1;
  repeat
    i:=n; n:=0;
    for j:=0 to i-1 do
      if a[j+1]<a[j] then begin
        n:=j; t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t;
      end;
  until n=0;
end;
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Сквозняк » 24.11.2020 02:54:20

мимо_проходил писал(а):Так держать! Скоро и про ноль узнаешь.

Это ты математикам в школе про деление на ноль расскажи.
мимо_проходил писал(а):Умное умным советуют.

Если умный, то покаж свои проекты на паскале.

Добавлено спустя 2 минуты 39 секунд:
sign писал(а):
Сквозняк писал(а): У математиков совсем крыша едет, считают что-то, а объяснить что оно обозначает в реале, простым человеческим языком, так чтобы стыдно не было, и не могут.

Программист без знания математики - чистый индус.

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

Добавлено спустя 13 минут 32 секунды:
мимо_проходил писал(а):sign, кажется тут более тяжёлый случай, чем ты описал. Он ведь бахвалится своим невежеством.

:mrgreen: Это у тебя невежество и полное непонимания "русская языка". Что меня прикалывает в людях с математической шизой, так это их "посчитайте кошечек", а при сдаче работы требование чтобы были посчитаны не кошечки а собачки. Ты перечитай по буквам всю тему с начала. Задание было не написать эффективную сортировку, а именно сортировку на пузырьках. Ну так вот вам, классическая пузырьковая сортировка, пузырьковее не бывает. Полезный образец для изучения сабжа. Биологи поймут, что изначальные образцы штаммов видов организмов тоже в хранилище нужны, а у математика на этом месте заглушка в мозгу, все ресурсы ушли на формулы, на остальное уже не хватает. Читай, если в яндексе забанили:
Сортировка пузырьком
Материал из Википедии — свободной энциклопедии
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 22 ноября 2019; проверки требуют 4 правки.
Перейти к навигации
Перейти к поиску

Сортировка простыми обменами, сортиро́вка пузырько́м (англ. bubble sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O( n^2 ).

Алгоритм считается учебным и практически не применяется вне учебной литературы, вместо него на практике применяются более эффективные алгоритмы сортировки. В то же время метод сортировки обменами лежит в основе некоторых более совершенных алгоритмов, таких как шейкерная сортировка, пирамидальная сортировка и быстрая сортировка.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 24.11.2020 09:11:45

Что-то ты всё время с темы соскочить пытаешься, то классы мешают, то какие-то математики, то алгоритм не тот.
Речь о вполне конкретном махровом говнокодище, автором которого является Сквозняк.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 24.11.2020 09:16:24

не ругайтесь, девченки
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 24.11.2020 09:41:29

мимо_проходил писал(а):говнокодище
на основании чего сделаны данные выводы? Код не рабочий? Что-то не правильно написано для машины в коде? Код долго работает? Слишком массивный код?

Или просто на основании того что: "Я так сказал!"?
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 24.11.2020 10:04:15

Seenkao писал(а):на основании чего сделаны данные выводы?

Я достаточно подробно изложил свои доводы. Ты поленился прочитать?
А если вдруг не в курсе, что такое говнокод, всегда ведь можно погуглить маленько.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 24.11.2020 10:42:32

перечитываем...
мимо_проходил писал(а):Что касаемо вложенных for - пузырёк - сортировка, конечно, непрактичная, но на отсортированных данных она отработает за O(N).
Твой пупырёк на любых данных работает за O(N^2).
Словом, однозначно имеет смысл попытать с ним счастья на вышеуказанном ресурсе.

Это всё? Точнее, тебе не известно, что настоящий пузырёк при любых данных делает всегда полные циклы, даже если это холостой ход.
А что ещё? ... да похоже ни чего... зато:
мимо_проходил писал(а):Я достаточно подробно изложил свои доводы.
(аплодирую стоя :idea: )

Для особо одарённых:
Говнокод - это любой код, который тебе не понятен (где-то там, Снег-север скидывал ссылку, но кто-то ведь уже перечитал весь топик?). И кто-то не удосужился и этого написать.

Добавлено спустя 4 минуты 22 секунды:
Кстати, не хочешь личико открыть? Или потерял свой прошлый аккаунт с паролями?
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 24.11.2020 11:04:15

Seenkao писал(а):Говнокод - это любой код, который тебе не понятен

Ещё один альтернативно одарённый?
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Сквозняк » 24.11.2020 11:39:42

мимо_проходил писал(а):Что-то ты всё время с темы соскочить пытаешься, то классы мешают, то какие-то математики, то алгоритм не тот.
Речь о вполне конкретном махровом говнокодище, автором которого является Сквозняк.

Это нормальный образец пузырька, а вот в твоей нормальности возможности убедиться не было. Задачи, оптимизировать пузырёк максимально, не стояло (после оптимизации будет непонятно, пузырёк это или хрюндик), а если у тебя стояло, то нужно было на другой сайт обращаться :mrgreen: И желательно карточку там не светить, иначе никакие познания в математике могут не помочь предугадать результат вычитания 4-2.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru