Допустим у нас есть массив символов 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, то перестановка займет много времени. Есть какой-нибудь более эффективный способ это сделать? |