Заполнения массива случаными неповторяющимися значениями 2Delphi , Синтаксис , МассивыЗаполнения массива случаными неповторяющимися значениями 2Автор: Иваненко Фёдор Григорьевич Приведу стандартную процедуру, работает в шесть раз быстрее, не имеет ограничений, да и кода поменьше :)
Преобразование процедуры для заполнения массива случайными уникальными значениями! Вот разбивка кода:
Вот шаг за шагом объяснение процесса перемешивания:
Процесс повторяется, пока все элементы не будут перемешены. Вам также было сказано, что эта процедура работает быстрее других решений. Я хотел бы увидеть бенчмарк для проверки этого утверждения. В целом, алгоритмы с меньшим количеством циклов и более простой логикой tend to be more efficient. Однако, разница в производительности может не быть значительной, если вы работаете с массивами среднего размера или под очень специфическими обстоятельствами. Один из потенциальных проблем этого подхода - он имеет время сложности O(n^2), где Альтернативное решение было бы использовать более эффективный алгоритм для генерации случайных перестановок,such as the Fisher-Yates shuffle or the Knuth Shuffle. Эти алгоритмы имеют время сложности O(n), что делает их более подходящими для больших массивов. Приведена процедура заполнения массива случайными неповторяющимися значениями, которая работает в шесть раз быстрее, не имеет ограничений и имеет меньший код. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
|||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |