Использование алгоритма сортировки кучи
Одним из основных применений куч является сортировка кучи. Она состоит из 2-х этапов
(1) построить кучу и
(2) сортированный массив создается путем многократного удаления самого большого элемента (куча обновляется после каждого удаления для поддержания кучи).
Input N x1 x2 ……… xnгде,
N is the total numbers to be sorted xi input numbers
Выход
У1 У2 ......... уя
где сортируется массив y
Функция сортировки кучи уже доступна вам
Вам нужно, чтобы завершить кучи построения и функции heapify
Вам нужно закодировать следующие функции
// function creates and build a heap using minHeapify void createHeap(struct MinHeap* minHeap){ // Single Node is a heap // Start from bottom most and rightmost internal node and heapify all internal nodes in bottom up way }
// heapify a min Heap. void heapify(struct MinHeap* minHeap, int idx){ // idx is the index of the node you want to heapify }
Что я уже пробовал:
void createHeap(struct MinHeap* minHeap) { int i,numelems; // n=heap[0]; //no. of elements for(i=numelems/2;i>=1;i--) down_adjust(minHeap,i); } void heapify(int*a , int len) { int item,i,j,k; for(k=1 ; k<len ; k++) { item = a[k]; i = k; j = (i-1)/2; while( (i>0) && (item>a[j]) ) { a[i] = a[j]; i = j; j = (i-1)/2; } a[i] = item; } }
OriginalGriff
И что же?
В чем же проблема?
Где ты застрял?
Какая помощь вам нужна?
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.