13#include "../../data_structures/heap/heap.h"
20 for (
size_t i = n / 2; i > 0; i--) {
25 for (
size_t end = n - 1; end > 0; end--) {
26 int tmp = arr[0]; arr[0] = arr[end]; arr[end] = tmp;
37 size_t left = 2 * i + 1;
38 size_t right = 2 * i + 2;
40 if (left < n && strcmp(arr[left], arr[largest]) > 0) largest = left;
41 if (right < n && strcmp(arr[right], arr[largest]) > 0) largest = right;
42 if (largest == i)
break;
43 char *tmp = arr[i]; arr[i] = arr[largest]; arr[largest] = tmp;
51 for (
size_t end = n - 1; end > 0; end--) {
52 char *tmp = arr[0]; arr[0] = arr[end]; arr[end] = tmp;
void heap_sift_down_max(int *arr, size_t i, size_t n)
static void sift_down_max_str(char **arr, size_t i, size_t n)
void heap_sort_ints(int *arr, size_t n)
void heap_sort_strings(char **arr, size_t n)
Unified header for all sorting algorithms.