Форум программистов, компьютерный форум CyberForum.ru

Пирамидальная сортировка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Метод принятия решения в консоле http://www.cyberforum.ru/cpp-beginners/thread306052.html
Уважаемые форумчане помогите реализовать задание в программном коде.Суть задания в консоле сравнить 3 моб.телефона,по 5 функциям,выставить оценку от 1 до 3,и в конце последней поставленой циферки посчитать и вывести какой телефон набрал больше баллов,Помогите,пожалуйста,Заранее спасибо
C++ преобразовать код Как будет выглядит такой код на Паскале ? Помогите! #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> int vpor(int *a, int m) { int x,i,j; http://www.cyberforum.ru/cpp-beginners/thread306028.html
Что значит? C++
std::cout << (myCircle.pointInCircle(x, y) ? "In circle" : "Out of circle"); Что означет эта строчка?
C++ Объясните sizeof()
Вопрос, скажите для чего можно использовать sizeof()?
C++ Сформулировать вектор из произведения элементов столбцов и найти их среднее арифметическое http://www.cyberforum.ru/cpp-beginners/thread305998.html
Сформировать вектор из произведения элементов столбцов и найти их среднее арифметическое
C++ Сформулировать вектор из наименьших значений элементов строк и найти их среднее арифметическое Сформировать вектор из наименьших значений элементов строк и найти их среднее арифметическое подробнее

Показать сообщение отдельно
nobless1368
14 / 14 / 1
Регистрация: 04.06.2012
Сообщений: 124
Записей в блоге: 1
25.08.2012, 17:48     Пирамидальная сортировка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iterator>
 
template< typename Iterator >
void adjust_heap( Iterator first
                  , typename std::iterator_traits< Iterator >::difference_type current
                  , typename std::iterator_traits< Iterator >::difference_type size
                  , typename std::iterator_traits< Iterator >::value_type tmp )
{
    typedef typename std::iterator_traits< Iterator >::difference_type diff_t;
 
    diff_t top = current, next = 2 * current + 2;
 
    for ( ; next < size; current = next, next = 2 * next + 2 )
    {
        if ( *(first + next) < *(first + next - 1) )
            --next;
        *(first + current) = *(first + next);
    }
 
    if ( next == size )
        *(first + current) = *(first + size - 1), current = size - 1;
 
    for ( next = (current - 1) / 2;
          top > current && *(first + next) < tmp;
          current = next, next = (current - 1) / 2 )
    {
        *(first + current) = *(first + next);
    }
    *(first + current) = tmp;
}
 
template< typename Iterator >
void pop_heap( Iterator first, Iterator last)
{
    typedef typename std::iterator_traits< Iterator >::value_type value_t;
 
    value_t tmp = *--last;
    *last = *first;
    adjust_heap( first, 0, last - first, tmp );
}
 
template< typename Iterator >
void heap_sort( Iterator first, Iterator last )
{
    typedef typename std::iterator_traits< Iterator >::difference_type diff_t;
    for ( diff_t current = (last - first) / 2 - 1; current >= 0; --current )
        adjust_heap( first, current, last - first, *(first + current) );
 
    while ( first < last )
        pop_heap( first, last-- );
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru