Exemple #1
0
void heap_sort(int a[], int num)
{
  int i = 0;
  for(i=(num/2-1);i>=0;i--)
  {
    heap_fix_down(a,i,num);
  }
  for(i=num-1;i>=1;i--)
  {
    swap_data(&a[i],&a[0]);
    heap_fix_down(a,0,i);
  }
}
Exemple #2
0
uint8_t heap_pop(struct heap *heap)
{
        if (!heap || !heap->head || !heap->size)
                return UINT8_MAX; /* TODO: fix it! */

        uint8_t res = *heap->head;
        ++heap->head;
        heap->size--;
        heap_fix_down(heap);

        return res;
}