Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Алгоритм перемешивания элементов массива

Страниц (1): [1]
 

1. Nikanr - 26 Августа, 2019 - 07:40:09 - перейти к сообщению
Допустим у нас есть массив символов
CODE:
char massiv[9]={'a','1','0','f','7','5','1','h','4'};

Его размерность может быть больше 9, но порядок следования (буква/числа) не меняется. Единственное что может меняться это количество чисел. Т.е массив может быть и таким
CODE:
char massiv1[9]={'a','1','0','с','4','l','1','0','8'};

Как можно перемешать этот массив таким образом, что бы порядок следования (буква/числа) сохранился?
Допустим после перемешивания массив1 выглядел бы так:
CODE:
char massiv1[9]={'l','1','0','8','a','1','0','c','4'};


Есть конечно идея генерировать два случайных числа от 0 до длины массива, проверять является ли элемент массива числом, и если является то генерировать заново, пока не попадет на букву, а потом делать перестановку. Но подозреваю что если длина массива будет гораздо больше 9, то перестановка займет много времени. Есть какой-нибудь более эффективный способ это сделать?
2. Zireael - 26 Августа, 2019 - 18:16:43 - перейти к сообщению
code (Отобразить)

Powered by ExBB FM 1.0 Final