Если вы переместите элемент max в конец массива кучи, а затем удалите его, вы не останетесь ни с чем в вашем массиве после завершения.Таким образом, ваш алгоритм, который удаляет максимум, не приведет к сортировке массива ваших исходных элементов.
Обновление на основе редактирования OP:
Вы можетеделай такПервый способ, тем не менее, позволяет сортировать на месте.Ваш метод требует O (N) дополнительного хранилища.
Другое Правка:
Трудно точно понять, какие предположения вы делаете на первом алгоритме, но, как яПодумайте о комментарии, который я сделал ниже, похоже, что MaxHeapify(A,1)
должно быть MaxHeapify(A, n)
.Обычно вы передаете массив и его размер, или, в этом случае, количество элементов, которые вы хотите упорядочить в виде кучи.Это может быть спорным, если вы предполагаете, что n является глобальной переменной.