Tip1922
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Нужно реализовать вставку в С++ на языке Assembler. Задача: Функция на вход получает массив mas, индекс k элемента, с которого начинается преобразование массива , длина массива n. Возвращает массив, в котором c k-ого элемента реализуется пирамида(двоичное дерево, где каждый потомок меньше своего предка, т.е. для каждого k: mas[k]>mas[2*k+1] и mas[k]>mas[2*k+2]) Есть реализация этой функции на С++: Код: void throught(double *mas, int k, int n) { int index; double buf; while (k < floor(n / 2)) { index = 2 * k + 1; if ((index < n) & (mas[index] < mas[index + 1])) index++; if (mas[k] > mas[index]) { k++; break; } else { buf = mas[k]; mas[k] = mas[index]; mas[index] = buf; k = index; } } } | | Всего записей: 1 | Зарегистр. 16-05-2018 | Отправлено: 12:36 16-05-2018 | Исправлено: Tip1922, 12:41 16-05-2018 |
|