|
Заблокирован
|
||||||
Quicksort qbasic быстрая сортировка половиной и МЫ04.05.2018, 22:23. Показов 8936. Ответов 86
Метки нет (Все метки)
quicksort qbasic быстрая сортировка половиной и МЫ
на тему сортировка читая дюжину статей с программами иногда часто вижу ляп: для А элементов 2 вложенных массива равные и число перестановок якобы А^2 зато правильнее: I от1 доА и J отI доА и видимо те ошиблись пиша 1 вместо I причём часто противореча пояснениям для А=100 требуется А^2=10ооо ходов а правильнее =100*(99)/2 =4950 ходов 2-жды меньше видно из формулы и ещё вникнув в сортировку пополам получается для А=100 =2*((100/2)*((100/2)-1)/2) = 2450 ходов 4-жды меньше чем советуют по интернету и возможно реально делить на 4 части и далее сортируется пузырьковая сортировка Проведя эксперимент контролируя время сортируя массив обратный от 100ооо до 1 всё про qb64 компилятор qbasic: мой пополам 135 секунд и А^2 215 секунд мой простой 389 секунд и А^2 497 секунд чужие непонятные около 200 секунд и вообще предполагаю используя мои строки контролирующие время реально тестировать многие алгоритмы сортировки на время лучше всего массив от 100ооо до 1 и ещё есть методы обмена без доп переменной В свете вышесказанного: на тему сортировка и МЫ обнаруживаются остроумные решения ускоряющие тысячи операций в разы Вдобавок создал строки контролирующие время пока отсутствующие в программе в начале темы и возможно проверять на скорость варианты сортировки Программу размещаю через тэг code
0
|
||||||
| 04.05.2018, 22:23 | |
|
Ответы с готовыми решениями:
86
Меньшее из двух чисел заменить половиной их суммы Меньшее из двух чисел заменить половиной их суммы, а большее — их удвоенным произведением |
|
Кормпилятор
|
||
| 08.05.2018, 13:03 | ||
|
т.е. компромисс сжираемой памяти и скорости. В потоке, кстати можно проверить сколько стека жрёт, убавлять стек, пока не крешнет. Кинь *.EXE, посмотрю у себя это чудо.
0
|
||
|
Заблокирован
|
|
| 08.05.2018, 13:09 [ТС] | |
|
мной проверено и не работает sortdemo.bas
в разных qb* и в turbobasic tb*
0
|
|
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,368
|
||
| 08.05.2018, 13:24 | ||
|
0
|
||
|
|
|
| 08.05.2018, 13:34 | |
|
0
|
|
|
Кормпилятор
|
|||
| 08.05.2018, 13:49 | |||
|
элементарную прогу на QuickBasic: https://yadi.sk/i/wLP7ngBE3VXzqk Добавлено через 4 минуты
1
|
|||
|
|
|
| 08.05.2018, 14:03 | |
|
0
|
|
|
Кормпилятор
|
||
| 08.05.2018, 14:17 | ||
|
Прикиньте гугл со своей нейросетки AlphaZero начнёт так обстреливать нас бедолаг. Это же полностью парализует всю полезную активность на конференциях.
1
|
||
|
Заблокирован
|
|
| 08.05.2018, 15:08 [ТС] | |
|
проверим выполнены ли условия:
цитата Сегодня, 13:53 чтобы sortdemo.bas работал в своей оболочке в windows 7 без эмулятора цитата Сегодня, 13:58 важно: чтобы sortdemo.bas работал в своей оболочке в windows 7 без эмулятора итого: условия не выполнены и ввиду того что sortdemo.bas невозможно приспособить к соревнованиям значит sortdemo.bas выбывает из соревнований о невозможности приспособить к соревнованиям: ? за сколько секунд сортирует 100ооо ячеек заполненных потенциально невыгодным образом в 1-й половине массива от большего к меньшему и во 2-й половине массива от меньшего к большему ? у меня подобное заполнение массива в 1 строчку оказывается невозможно ввести массивы много тысячные максимум кажись до 10ооо и ещё вдобавок в эмуляторе заведомо медленно да и не считает перестановки хотя могли додуматься "профффессионалы" в dosbox мой сортировал 5ооо ячеек 25ооо проходов за 7оо секунд в qb64 мой сортировал 5ооо ячеек те же 25ооо проходов за о.3 секунды Нобелевская премия сама себя не получит вывод: важно: чтобы сортировка работала в своей оболочке в windows 7 без эмулятора и напоминаю: кому непонятно пишите какие абзацы непонятные и пока никто не показал что именно не понятно
0
|
|
|
Кормпилятор
|
||||
| 08.05.2018, 15:19 | ||||
|
Сфинкс боюсь сейчас ты не в том положении, чтобы диктовать какие-то там условия, ибо дал в ретузы ты мощно. Поэтому свои требования про Windows7 и прочее засунь себе глубоко и подальше. Добавлено через 5 минут Очень показательно.сортировку - будет безбожно лагать.
0
|
||||
|
Заблокирован
|
|
| 08.05.2018, 15:20 [ТС] | |
|
лучше я засуну подальше
тянущий резину за хвост в долгий ящик алгоритм от профффессионалов 20-го века медленный донельзя и тормозящийся эмулятором и никому не нужный для ускорения и для использования т.к. непонятно как сортировать именно свои данные и не считающий число перестановок а ведь число перестановок важнее времени при испытании логики алгоритмов да ещё читал возможно переставлять без доп переменной и без swap и пока не обнаружено ничего нового значит соревнуются кажись 3 basic сортировки
0
|
|
|
Кормпилятор
|
||
| 08.05.2018, 15:21 | ||
|
которая 10 секунд лопатит массив из 100000 элементов и можно будет расходиться.
0
|
||
|
Кормпилятор
|
|||
| 08.05.2018, 16:02 | |||
|
Наслаждайтесь парни:
https://yadi.sk/i/TusD3iRy3VYR8V Оставляю вас наедине с виртуозом программистом. Добавлено через 49 секунд Добавлено через 9 минут
0
|
|||
|
Заблокирован
|
|
| 08.05.2018, 16:36 [ТС] | |
|
10 секунд моей сортировки 10ооо ячеек это Победа
мне хоть и жалко мегабайт на мега кино зато минуты в конце со счётчиками посмотрел 10 секунд моей сортировки 10ооо ячеек это Победа потому как другой алгоритм использует язык низшего уровня сами убедитесь и не случайно чужая программа скрыта и нужно нажимать спойлер 10 секунд моей сортировки 10ооо ячеек это Победа и вдобавок мой алгоритм ускоряется единственным проходом и большее число проходов логарифмически зависимы и пока с сортировкой глубже моей программы нету 10 секунд моей сортировки 10ооо ячеек это Победа
0
|
|
|
Заблокирован
|
|
| 08.05.2018, 16:45 [ТС] | |
|
до 11 секунд
100ооо ячеек 1,7 млрд проходов 467ооо перестановок
0
|
|
|
Заблокирован
|
|||||||||||
| 08.05.2018, 17:54 [ТС] | |||||||||||
|
текст другой чужой программы также не по теме
ввиду того что нет циклов basic и значит используется сортировка на языках низшего уровня причём с неизвестными результатами
явно язык низшего уровня естественно быстрее
лучше совместимые с qb64 да и посрамлены якобы непонимающие: тестировавший мой код без GоTо за 10 секунд разобрался в моём коде молниеносно что и требовалось доказать а я пока ещё отточу открытие года да ещё лайфхак: чтобы не печатались все 100ооо ячеек = n легко обособить печать 10 ячеек FOR k = n-10 TO n: PRINT d(1, k);: NEXT: PRINT и легче контролируется сортировка
0
|
|||||||||||
|
Кормпилятор
|
|||||||||||||
| 08.05.2018, 18:31 | |||||||||||||
Прикинь, не знал что вот это "язык низшего уровня"("низшего" звучит как "падшего" ):QSort
и вот это RapidSort
0
|
|||||||||||||
|
|
|||
| 08.05.2018, 18:53 | |||
|
Как бы мне не нравился PureBasic, и как бы locm не сомневался в вычислительных способностях FreeBasic
Но как говорится результаты на лицо: Встроенная функция сортировки PureBasic, которой я давеча хвастался перед кодом на QBasic, как Пурик порвал Qbasic, так же и FreeBasic порвал Пурик ![]() Или Фред плохо сортировку написал, или реально FB считает очень быстро!
0
|
|||
|
Кормпилятор
|
||
| 08.05.2018, 19:11 | ||
|
т.е. не блокирует жёстко ядра, может какая-нть мелкозернистая. У кого есть точные профайлеры, посмотрите. Обычный диспетчер задач нифига нормально не показывает по загрузке, всё что я вижу - это 3 ядра, загруженные примерно на половину, т.е. чисто ориентировочно оно может работать в 2 раза быстрее. Меня больше удивило другое, асмовая сортировка просирает FB-шной на моём проце. Ну и всё это на FB не использует потоки, т.е. это можно ещё раза в 3.5 минимум ускорить(т.е. проход, перебрасываем элементы по значению в 4 отдельных массива, дальше отдаём на каждое ядро). К тому же, думаю если переписать Rapid на PB, он будет тоже где-то так фигарить, будет разница максимум в 5% в пользу PB.
0
|
||
|
Модератор
|
||||||
| 08.05.2018, 19:14 | ||||||
|
Алгоритм сортировки Long значений по возрастанию из PureBasic (из EXE locm'а):
Pro_grammer, кидай EXE
0
|
||||||
| 08.05.2018, 19:14 | |
|
Помогаю со студенческими работами здесь
60
Управление COM-1 портом в QBasic
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|