Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Преобразование массива. Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

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
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Преобразование массива. Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru