$j зависит $iterations. А $iterations постоянно уменьшается. Т.е. все о чем вы пишите — реализовано.
Спасибо за замечание. Оптимизацию можно провести эвристически :) — реализовать более продвинутые алгоритмы сортировки.
Посмотрел таки в Википедию :) Для реализации полноценной пузырьковой сортировки надо ввести отдельную переменную, которая будет проверять, если ли перемещения элементов в текущем цикле. Если их нет — то сортировка завершена, выход из цикла.
Занятно, но мы проходили оба алгоритма на первом курсе института, абы не в школе (бинарный поиск так точно в школе). Что здесь нового/интересного для аудитории хабра?
Извините, я понимаю, что это уровень первого курса в ВУЗе. Вот я до этого уровня только дорос :)
Интересного для Хабра может быть то, что все делается в комплексе, например (алгоритм -> юнит-тест -> нагрузочное тестирование). Или интересным будет то, что подобные алгоритмы достаточно просты для реализации и не надо на курсы тратиться и ходить в течении нескольких месяцев. А все можно изучить самостоятельно быстрее и дешевле.
Сравнивать можно различные сортировки друг с другом. Думаю, на эту тему много кто писал более серьезные исследования. Я просто взял две сортировки (нативную на PHP и свою реализацию) и сравнил их.
Может дело в том, что я брал одно число для поиска?
Я видел это и пробовал менять код, запускать этот кусок отдельно, менять число для поиска — результат не менялся.
Сам удивлен этим фактом.
Я сам был удивлен в начале подобным представлением. А потом понял (прочитал) — что это как бы наглядная иллюстрация к пузырьковой сортировке: «тяжелые» (большие) числа опускаются на дно, а «легкие» (маленькие) числа всплывают наверх :)
Пузырьковая сортировка и бинарный поиск на PHP (обучение, эксперименты)