Пирамидальная сортировка C++
На аукционе
1. Написать функцию со следующим прототипом: void GenerateDataset (char *filename, int num). Функция создает текстовый файл (имя файла передается в переменной filename)из num строк. Каждая строка содержит трехразрядное шестнадцатеричное число, сгенерированное случайным образом. 2. Написать функцию со следующим прототипом: int SortDataset (char *filename). Функция читает содержимое файла в массив, сортирует массив по возрастанию его элементов, записывает упорядоченный массив в новый файл (один элемент - одна строка). Алгоритм сортировки: пирамидальная сортировка. Тип данных в файле: см. условие задачи 1. Имя нового файла формируется путем добавления к имени предыдущего файла метки .sort (например, filename.txt -> filename.sort.txt). Функция возвращает целое число, равное общему количеству сравнений элементов массива в процессе сортировки. 3. Написать программу, которая оценивает трудоемкость алгоритма сортировки из задачи 2 для файла данных из задачи 1. Экспериментальная трудоемкость (ТЭ) оценивается как количество сравнений элементов массива в процессе сортировки и далее сравнивается с теоретическими оценками Т1 = num2 и Т2 = num · log2 num. Повторите оценки для следующих значений num: 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096. После каждого подобного оценивания записывайте результат в текстовый файл до получения в итоге таблицы вида: