Перемешать массив в C

Я ищу функцию в ANSI C, которая произвела бы рандомизацию массива, как это делает PHP shuffle () . Есть такая функция или надо писать самостоятельно? И если мне придется написать это самостоятельно, как это сделать лучше / эффективнее всего?

Мои идеи на данный момент:

  • Выполнить итерацию по массиву, скажем, 100 раз и обменять случайный индекс на другой случайный индекс
  • Создать новый массив и заполнить его случайными индексами из первого, проверяемого каждый раз если индекс уже принят (производительность = 0 сложность = серьезная)
37
задан Jonathan Leffler 20 January 2017 в 22:12
поделиться