Классическая сортировка вставкой алгоритм с массиваРеализация вставки сортировки в C++ с использованием стека или очереди?
void insertion_sort (int arr[], int length){
int j, temp;
for (int i = 0; i < length; i++){
j = i;
while (j > 0 && arr[j] < arr[j-1]){
temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
j--;
}
}
}
Так она должна осуществляться с помощью стека или очереди?
Мне было бы любопытно, как вы думаете, что сделаете это. – gnasher729
Невозможно сортировать один стек. Можно сортировать одну очередь с чем-то вроде сортировки пузырьков, используя O (1) пространство для хранения одного элемента. С двумя стеками может быть реализовано нечто вроде пузырьковой сортировки. С двумя очередями или тремя стеками может использоваться сортировка слияния снизу вверх. В случае 3 стеков, многофазное слияние вверх по объему происходит быстрее, но сложнее. Поскольку при перемещении данных из стека в стоп-код происходит обратное, программа должна отслеживать, должна ли она выполняться по возрастанию или нисходящей последовательности, добавляя к усложнению. – rcgldr