есть массив, динамический, задается случайным образом с помощью функции rand в диапазоне [0;2], нужно отсортировать его так, чтобы начинался он с 1, потом шли нули, а в конце двоечки, при этом не создавая новых массивов и не используя библиотеки стандартных алгоритмов ну и т.п., ниже кусок с моим алгоритмом сортировки, но он почему-то не работает, сортируются только единицы в начало, а потом что-то идет не так. Только начал изучать программирование, извиняюсь за глупый вопрос
int endOfFirstCycle;
int* end = &endOfFirstCycle;
for (int i = 0; i < N; i++) {
int firstElement = i;
for (int currentElement = firstElement; currentElement < N; currentElement++) {
if (array[currentElement] == 1) {
int temp = array[currentElement];
array[currentElement] = array[firstElement];
array[firstElement] = temp;
*end = currentElement + 1;
}
}
}
for (int i = *end; i < N; i++) {
int firstElement = i;
for (int currentElement = firstElement; currentElement < N; currentElement++) {
if (array[currentElement] == 0) {
int temp = array[currentElement];
array[currentElement] = array[firstElement];
array[firstElement] = temp;
}
}
}