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

Объясните сортировку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вектор/строка http://www.cyberforum.ru/cpp-beginners/thread407581.html
Всем доброго времени суток. Вынужден попросить помощи форумчан. Есть две задачки: в одной я не понимаю условие, а насчёт второй просто нет идей. Задачки на языке Си. Собственно, вот условия: 1) Задан целый вектор М(n), n £ 12. Сформировать вектор А, элементы которого A ровняются количеству цифр в десятичной записи элемента М. // Вот это условие я не понимаю. 2) Определить, какая буква чаще...
C++ Исключения Опишите функцию умножения двух целых, обработайте ошибку перепол-нения сверху (overflow). http://www.cyberforum.ru/cpp-beginners/thread407580.html
Дана матрица A(N, M). Определите число ненулевых элементов в каждой строке матрицы. C++
Дана матрица A(N, M). Определите число ненулевых элементов в каждой строке матрицы.
результат C++
c = (a/365)*b; Label5->Caption=FloatToStr(c); Как сделать, чтобы результат не выводил цифры после запятой Ну например, не 192,6754563986, а 192?
C++ Объясните динамическая матрица http://www.cyberforum.ru/cpp-beginners/thread407575.html
Здравствуйте. Объясните пожалуйста вот эти строчки кода. int **matrix = new int * ; for ( int index = 0; index < n; index++ ) matrix = new int ; например матрица 5х5. как отрабатывает этот фрагмент кода. что хранится в каждой ячейке матрицы? Добавлено через 14 минут как я понял На первом шаге выделяется указатель на массив указателей, а на втором шаге, в цикле каждому...
C++ работа с файлами написать программу которая считывает текст из файла, и выводит его на экран, меняя местами каждые два соседних слова подробнее

Показать сообщение отдельно
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51

Объясните сортировку - C++

14.12.2011, 22:44. Просмотров 368. Ответов 4
Метки (Все метки)

вот приведен пример сортировки слиянием:
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
void BinMerge(int *mas, int n, const int k)
{
    const int SIZE=n/2;
    int j=0,h=0;
    int *m1= new int [SIZE];
    int *m2= new int [SIZE];
    for (int i=0;i<n;i++)
    {
        if (i%(2*k)<k)
            m1[j++]=mas[i];
        else
            m2[h++]=mas[i];
    }
    int index=0;
    for (int i=0;i<SIZE;i+=k)
    {
        j=i; h=i;
        while ((j<i+k) && (h<i+k))
            if (m1[j]<m2[h])
                mas[index++]=m1[j++];
            else
                mas[index++]=m2[h++];
        if (j==i+k)
            for (int he=h;he<i+k;he++)
                mas[index++]=m2[he];
        else
            for (int je=j;je<i+k;je++)
                mas[index++]=m1[je];
    }
    delete [] m1;
    delete [] m2;
}
Помогите пожалуйста разобрать именно этот пример, и если не трудно, то закомментите.

Добавлено через 1 час 24 минуты
C++
1
  if (i%(2*k)<k)
что это за условие?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru