Если мы расположим массив в порядке возрастания, то получим двоичную кучу. Есть ли какой-то недостаток этого преимущества. Если да, то в чем будет причина?
Вопросы и ответы по программированию
Если мы расположим массив в порядке возрастания, то получим двоичную кучу. Есть ли какой-то недостаток этого преимущества. Если да, то в чем будет причина?
«Расположив массив в порядке возрастания, получим двоичную кучу». Это правильно.
Теперь это зависит от того, какой алгоритм вы используете для сортировки массива в порядке возрастания. Наилучший алгоритм сортировки выполняется со сложностью
O(NLogN)
.В то время как алгоритм
Build_Heap
для простого создания бинарной кучи имеет сложностьO(N)
.Если и до тех пор, пока вы не используете метод сортировки на основе не сравнения, как
Counting Sort
ваша сложность для создания двоичной кучи будет по крайнейO(NLogN)
мере и atmostO(N^2)
.Таким образом, традиционный метод создания бинарной кучи является благоприятным.
Хотя
Counting Sort
это займетO(N)
время, но потребует дополнительного пространстваO(N)
, в то время как традиционныйBuild_Heap
будет создавать двоичную кучу на месте .