Какой самый оптимальный алгоритм для пересортировки ряда чисел случайным образом?

логика алгоритмы програмирование

Поясню, если ряд из Х эллементов (например: 23 54 24 65 14 21). Числа не повторяются. Как оптимально и быстро переставить случайным образом элементы?
Ответы:
Все случайные операции генерируются ТОЛЬКО с использованием встроенного генератора случайных чисел. Если он встроен, то в большинстве языков программирования есть команды сортировки случайным образом. Если специальной функции нет, но есть генератор случайных чисел, могу предложить такой несложный алгоритм… Но пока лень расписывать :) Поищите внимательней в списке функций языка Вашей платформы разработки. Не найдёте — распишу…
нужно сделать на FLASH, а в нем насколько я знаю нет сортировки случайным образом:( может все таки раскажешь про НЕСЛОЖНЫЙ АЛГОРИТМ? у меня как бы есть идея, но ... очень накрученая... так как при генерировании случайного элемента надо проверять или мы этот элемент уже не трогали. или наоборот при перемене места где-то запоминать какие элементы уже поменяли местами и потом опять же проверять нет ли повтора.... или я куда то ушел в другую сторону или все действительно так накручено???
поподробнее
если ни один элемент не сменит своей позиции - это тоже попадает под термин "случайно отсортировано"
как я понимаю, вам необходимо, чтобы КАЖДЫЙ элемент сменил свою позицию? так?
Самый простой и эффективный способ, который, кстати, предлагает Кнут: в цикле перебирать имеющиеся элементы массива, и менять их местами с любым случайным элементом этого массива. Он же математически доказывает, что полученная последовательность является в достаточной мере случайной, а предложенный способ наиболее быстрым из возможных. В способе также не используется вспомогательный массив, что также является плюсом.
поддерживаю  polecat  
сложно представить задачу, где необходимо условие смены позиции обязательно каждым элементом
а для простого шаффла - данного алгоритма думаю достаточно
da, GENIALINO:)
ea deistvitelino ushiol kuda-to gluboko:)
polecat za eto tebe 10+:)


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.