Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Liori
4 / 4 / 5
Регистрация: 30.08.2012
Сообщений: 155
1

Быстрая сортировка массива

28.12.2014, 17:47. Просмотров 398. Ответов 1
Метки нет (Все метки)

Помогите, как написать быструю сортировку для одномерного массива, если для этого нужно использовать векторы?
Не могу понять, как вызывать функцию сортировки при использовании векторов

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
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
void qsort(vector<int> &mass,int b, int e);
 
int main(int argc, char* argv[])
{
    int N;
    cout << "Vvedite razmer: ";
    cin >> N;
    vector<int> mass(N);
    cout << "Vvedite elementy: ";
    for (int  i = 0; i < N; i++)
    {
        cin >> mass[i];
    }
 
    qsort(mass,0, N -1);
    for (int  i = 0; i < N; i++)
    {
        cout << mass[i] << " ";
    }
 
    cout << "\n";
    system("pause");
    return 0;
}
    void qsort(vector<int> mass,int b, int e)
    {
    int l = b, r = e;
        int piv = mass[(l + r) / 2]; 
           while (l <= r)
    {
            while (mass[l] < piv)
            l++;
            while (mass[r] > piv)
            r--;
            if (l <= r)
            swap (mass[l++], mass[r--]);
    }
 
    
    if (b < r)
        qsort (b, r);
    if (e > l)
        qsort (l, e);
 
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2014, 17:47
Ответы с готовыми решениями:

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и...

Быстрая сортировка массива
Программа сортирует числа в valarray с помощью быстрой сортировки, но не все...

Быстрая сортировка массива по невозрастанию
Подскажите как с помощью быстрой сортировки отсортировать массив в обратном...

Быстрая сортировка двумерного массива
Нужно отсортировать двумерный массив по убыванию быстрой сортировкой. Вроде всё...

Быстрая сортировка двумерного массива
Возникла проблема с програмой в которой применяется быстрая сортировка...

1
tnk500
114 / 118 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
28.12.2014, 18:08 2
Liori, вам следовало передать вектор по ссылке:

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
#include <iostream>
#include <vector>
#include <ctime>
 
using namespace std;
void qsort(vector<int>& mass,int b, int e);
 
int main(int argc, char* argv[])
{
    srand( time(0) );
    int N;
    cout << "Vvedite razmer: ";
    cin >> N;
    vector<int> mass(N);
    for (int  i = 0; i < N; i++)
    {
        mass[i] = 0 + rand() % 101;
    }
 
    qsort( mass, 0, N-1);
    for (int  i = 0; i < N; i++)
    {
        cout << mass[i] << " ";
    }
 
    cout << "\n";
    system("pause");
    return 0;
}
 
void qsort(vector<int> &mass,int b, int e)
{
    int l = b, r = e;
    int piv = mass[(l + r) / 2]; 
    while (l < r)
    {
        while (mass[l] < piv)
            l++;
        while (mass[r] > piv)
            r--;
        if (l <= r)
        swap(mass[l++], mass[r--]);
    }
 
    
    if (b < r)
        qsort ( mass, b, r);
    if (e > l)
        qsort ( mass, l, e);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2014, 18:08

Быстрая сортировка двумерного массива
Помогите разобраться с быстрой сортировкой! Для одномерного массива всё...

Быстрая сортировка массива структур
Подскажите, пожалуйста, как можно быстро отсортировать массив структур? (1 &lt;= N...

Быстрая сортировка двумерного массива
Здравствуйте. У меня есть задание по сортировкам. Нужно заданный двумерный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru