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

шейкерная сортировка + сортировка слиянием - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Использование библиотеки bass и примеры кода http://www.cyberforum.ru/cpp-beginners/thread677888.html
Мне очень нннада хотя бы консольный примерчик использования bass'a, по поисковику уже 2 месяца роюсь, ничего не понятно ( еще лучше, если в Windows Forms, если что, то я пишу в Visual C++ 10
C++ Преобразовать массив, увеличив его последнию серию найбольшей длинны на один элемент Дан целочисленный массив размера N преобразовать массив увеличив его последнию серию найбольшей длинны на один элемент. http://www.cyberforum.ru/cpp-beginners/thread677881.html
C++ Найти и исправить ошибки в приведенном коде
//#include <stdafx.h> #include <iostream> #include <math.h> using namespace std; void main () { setlocale (LC_ALL, "Russian"); system ("color 70");
C++ Нарисовать Блок-схему
Нужно нарисовать блок-схему на эту задачу: Вычислить значения у, соответствующие каждому значению х ( xn≤x≤xk, шаг изменения x равен dx) по формуле у= 3 ∣a−x2∣ ln2+a2+x4  2 . Вычислить сумму всех, произведение ненулевых и количество отрицательных значений у. На экран выводить каждую третью пару значений x и y Контрольный расчёт провести при a=2,17, xn=-1,5, xk=0,5, dx=0,2.
C++ Низкоуровневые тонкости программирования на С++ http://www.cyberforum.ru/cpp-beginners/thread677863.html
Здравствуйте. Хотел бы узнать у опытных программистов, где можно найти литературу по более продвинутым вопросам программирования с С++, т.е. таких как, выделение памяти при создании экземпляров класса, доступ к методам класса, скрытое (от разработчика) создание временных переменных в процессе выполнения, хранение в памяти динамических массивов и осуществление доступа к их ячейкам (если массив...
C++ Непонятно где ошибка в программе Программа должна записывать в output.txt содержимое из файлов заданных через аргумент. printkey 1 - это типа "ассерта" #include <stdio.h> int main(int argc, char *argv) { FILE *pFile = NULL; FILE *outFile = NULL; int ch; char *inputFileName; подробнее

Показать сообщение отдельно
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
23.10.2012, 13:30     шейкерная сортировка + сортировка слиянием
Тырнул из своих старых исходников:
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
template< class T >
  VOID MergeSort( T *a, INT n )
  {
    if (n == 1)
      return ;
    INT i = n / 2;
    MergeSort(a, i);
    MergeSort(a + i, n - i);
 
    T *a1 = a;
    T *a2 = a + i;
    INT n1 = i, n2 = n - i;
     T *bulk = new T[n1 + n2];
    INT j = 0, k = 0, inc = 0;
    while (j < n1 && k < n2)
      if (a1[j] < a2[k])
        bulk[inc++] = a1[j++];
      else
        bulk[inc++] = a2[k++];
    if (j < n1)
      memcpy(bulk + inc, a1 + j, (n1 - j) * sizeof(INT));
    else if (k < n2)
      memcpy(bulk + inc, a2 + k, (n2 - k) * sizeof(INT));
    memcpy(a1, bulk, (n1 + n2) * sizeof(INT));
    delete[] bulk;
  }
template можно убрать, T заменить на тип массива - все будет работать. У нас есть изначально один массив, который разделяется на два подмассива(что и надо), которые опятьже сортируются...

Добавлено через 1 минуту
Нижняя часть как раз и ответственна за сливание вместе...
 
Текущее время: 03:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru