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

Быстрая сортировка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Какая IDE лучше ? http://www.cyberforum.ru/cpp-beginners/thread645081.html
Что выбрать: Borland C++ Builder или Visual Studio ?
C++ Библиотека STL, + задача с её использованием Доброго времени суток, о существовании библиотеки шаблонов я узнал 2 недели назад. У меня есть задача: Использовать ООП: Написать программу, которая разгадывает японский кроссворд под названием "Судоку". Пользователь вводит начальные значения уже существующие в кроссворде, который необходимо разгадать, и программа выдает на экран готовый результат. Но это глобальная задача, вопрос проще... http://www.cyberforum.ru/cpp-beginners/thread645077.html
С чем лучше начинать: с IDE или с командной строкой? C++
Изучать язык только начал и сразу же столкнулся с несоответствием примеров в книгах с реально написанным кодом. Когда-то мне в руки попался диск с 6-м Борландом, там видел что изначально есть определенный стартовый набор необходимого кода, я так думаю с поддержкой библиотек у них тоже проблем будет поменее, да и собирать его можно как лего, но... Хочу изучить с++ довольно глубоко и основательно....
C++ Тест с регинальными задачами по C++
Попробуй решить тест
C++ Как узнать разрешение монитора? http://www.cyberforum.ru/cpp-beginners/thread645040.html
Желательно кроссплатформенный метод. Заранее благодарен.
C++ Синтаксис файла ресурсов Мне необходимо в экзешник запихънуть кучку tga изображений. Как это сделать? Какие директивы использовать? Перекодировка изображения неприемлима. И еще одно: где можно почитать о синтаксисе файлов ресурса? подробнее

Показать сообщение отдельно
OdessaNA
 Аватар для OdessaNA
19 / 19 / 0
Регистрация: 10.01.2011
Сообщений: 240
31.08.2012, 21:25     Быстрая сортировка
Друзья, здравствуйте!
Как работает быстрая сортировка - у меня практически вопросов нет:
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
const int n=10;
template <class T>
void QuickSort (T Ar[], long N)
{
    long i=0, j=N;
    T  temp, p;
    p=Ar[N/2];
    do
    {
        while(Ar[i]<p) i++;
        while (Ar[j]>p) j--;
        if(i<=j)
        {
            temp = Ar[i];
            Ar[i]=Ar[j];
            Ar[j]=temp;
            i++;
            j--;
        }
    }while(i<=j);
    if(j>0) QuickSort(Ar, j);
    if(N>i) QuickSort(Ar+i, N-i);
}
void main()
{
    srand((int)time(NULL));
    int Ar[n];
    for(int i=0; i<n; ++i)
    {
        Ar[i]=rand()%100;
        cout<<Ar[i]<<' ';
    }
    cout<<endl;
    QuickSort(Ar, n-1);
    for(int i=0; i<n; ++i)
    {
        cout<<Ar[i]<<' ';
    }
    cout<<endl;
    system("pause");
}
Не могу разобраться с рекурсией, а именно с этой строчкой if(N>i) QuickSort(Ar+i, N-i) - для чего к всему массиву (и как) прибавляется i ? И для чего от N отнимается i ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru