Я немного смущен. Если у меня есть массив, я должен построить дерево. Чтобы сравнить дочерние элементы, мне нужно знать, насколько велик мой массив, в данном случае его N = 6, поэтому я должен разделить его на 2, чтобы получить 3. Это означает, что я должен начать с индекса 3, чтобы сравнить с родительским узлом. Если дочерний узел больше, чем родительский узел, я должен поменять его местами, иначе мне не нужно. Затем я перехожу к индексу 2 и сравниваю с родительским, если дочерний узел больше, чем родительский узел, тогда я должен поменять его местами. Затем индекс 1 я должен сравнить с дочерними элементами и при необходимости поменять местами. Поэтому я создал кучу Max. Но знайте, я не понимаю, почему я должен обменивать A1 с A[6], затем A1 с A[5]. Наконец, я не получаю максимальную кучу, я получаю минимальную кучу? Что означает Heapify?
Большое спасибо, я ценю каждый ответ!
Одно из моих упражнений — Проиллюстрировать этапы Heapsort, заполнив массивы и представления дерева.