2 / 2 / 0
Регистрация: 04.11.2012
Сообщений: 26
1

Быстрая Сортировка quick-sort (ошибка в 40 строке) как исправить?

05.11.2012, 16:02. Показов 1450. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <vector>
using std::endl;
using std::cout;
using std::vector;
 
template<class T>
void print_vector( vector<T>& v);
template<class T>
void prepare_vector(vector<T>* v);
template <class T>
void QuickSort(vector<T> *v,int left,int right);
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
    vector<int> v(30,0);
    prepare_vector(&v);
    cout<<"Сгенерированный массив: "<<endl;
    print_vector(v);
    cout<<"Отсортированный массив: "<<endl;
    QuickSort(&v,0,v.size());
    print_vector(v);
    return 0;
    
}
template <class T>
void QuickSort(vector<T> *v,int left,int right)//левая и правая граница подмассивов
{
    T& med = (*v)[left];
    int l=left;
    int r =right;
    do
    
    {
        try
        {
        while((*v)[l]<med)
            ++l;
        while(v->at(r)>med)
            --r;
        }
        catch(std::out_of_range& ex)
        {
            cout<<"Информация из объекта исключения:"<<ex.what()<<endl;
        };
        if(l<=r)
        {
            std::swap((*v)[l],(*v)[r]);
            ++l;
            --r;
        }
        if(left<r)
            QuickSort(v,left,r);
        if(right>l)
            QuickSort(v,l,right);
 
    } while(l<=r);
}
template<class T>
void print_vector(vector<T>& v)
{
    for(vector<int>::iterator iter=v.begin();iter!=v.end();iter++)
        cout<<*iter<<' ';
    cout<<endl;
}
template<class T>
void prepare_vector(vector<T>* v)
{
    for(vector<int>::iterator iter=v->begin();iter!=v->end();iter++)
        *iter= std::rand() % 100;
}
Добавлено через 1 минуту
Информация из объекта исключения invalid vector<T> subscript. Ошибка в 40 строке.
0
05.11.2012, 16:02
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2012, 16:02
Ответы с готовыми решениями:

Быстрая сортировка (quick sort) НЕ через рекурсию
Добрый день, переписал алгоритм быстрой сортировки с wiki, переделал под свою задачу, на малом количестве чисел работает, при более 991...

Сортировка Quick Sort
Можно написать код и коментами.

Реализация алгоритма "Быстрая сортировка" на Quick Basic
Доброго времени суток уважаемые форумчане! Мне нужна реализация классического алгоритма &quot;быстрая сортировка&quot; на quick basic....

2
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
05.11.2012, 16:28 2
строку 22:
Цитата Сообщение от Pchel Посмотреть сообщение
C++
1
QuickSort(&v,0,v.size());
замените на:
C++
1
    QuickSort(&v,0,v.size()-1);
1
2 / 2 / 0
Регистрация: 04.11.2012
Сообщений: 26
05.11.2012, 16:36  [ТС] 3
Спасибо Вам, огромное!
0
05.11.2012, 16:36
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2012, 16:36
Помогаю со студенческими работами здесь

Быстрая сортировка, исправить код
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace...

Merge sort (Сортировка слиянием) - исправить ошибки в коде
Privet dami i gospoda. Ne poluchaetsa realisovat' Merge sort. Proga kompiliruetsa no sorting ne rabotaet. Help please. #include...

Quick sort
!Хелпаните с сортировкой выдает ошибку ! USES Windows; {---------------------------------------------------------} CONST ...

Quick sort c++
Добрый день. Есть вопрос, как можно реализовать Quick sort с подсчётом перестановок. По условию задания у нас есть 10000 элементов. ...

Quick sort using vectors
Now that you have learned about three sorting algorithms with quadratic time complexity (Bubble, (./selection) and Insertion sorts) you...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Отличия между let и var в JavaScript
hw_wired 12.02.2025
Работа с переменными - один из основных моментов при написании программ на JavaScript. От правильного объявления и использования переменных зависит не только читаемость кода, но и его надежность, а. . .
Подключение файла JavaScript в других файлах JavaScript
hw_wired 12.02.2025
Самый современный и рекомендуемый способ подключения JavaScript-файлов - использование системы модулей ES6 с ключевыми словами 'import' и 'export'. Этот подход позволяет явно указывать зависимости. . .
Отмена изменений, не внесенных в индекс Git
hw_wired 12.02.2025
Управление изменениями в Git - одна из важнейших задач при разработке программного обеспечения. В процессе работы часто возникают ситуации, когда нужно отменить внесенные изменения, которые еще не. . .
Что такое px, dip, dp, and sp в Android
hw_wired 12.02.2025
При разработке мобильных приложений для Android одним из ключевых вызовов становится адаптация интерфейса под различные устройства. А ведь их действительно немало - от компактных смартфонов до. . .
Отличия POST и PUT в HTTP
hw_wired 12.02.2025
В основе современного интернета лежит протокол HTTP, который определяет правила взаимодействия между клиентами и серверами. Этот протокол предоставляет набор методов, позволяющих клиентам выполнять. . .
Перемещение последних коммитов в новую ветку Git
hw_wired 12.02.2025
В процессе разработки иногда возникает ситуация, когда последние изменения в основной ветке нужно переместить в отдельную ветку разработки. Может оказаться, что вы внесли несколько коммитов в ветку. . .
GraphQL в Go (Golang)
stackoverflow 11.02.2025
В веб-разработке традиционные REST API постепенно уступают место более гибким и эффективным решениям. GraphQL - мощное средство для создания гибких API, которое позволяет клиентам запрашивать именно. . .
GraphQL и TypeScript
stackoverflow 11.02.2025
В мире современной веб-разработки GraphQL прочно занял место одного из самых перспективных подходов к созданию API. Этот язык запросов, созданный для оптимизации взаимодействия между клиентом и. . .
Переход на Composition API в Vue.js
stackoverflow 11.02.2025
Фронтенд разработчики, работающие с Vue. js, часто сталкиваются с проблемой организации логики в компонентах при использовании классического Options API. Знаете ли вы, что происходит, когда ваш. . .
Архитектура и внутреннее устройство современных процессоров
stackoverflow 11.02.2025
От первых электронных вычислительных машин, занимавших целые комнаты, до современных многоядерных процессоров размером с почтовую марку - путь развития вычислительной техники поражает воображение. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru