Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
38 / 30 / 8
Регистрация: 10.01.2015
Сообщений: 209
1

Сортировка массива по возрастанию

24.01.2015, 19:48. Показов 2098. Ответов 4
Метки нет (Все метки)

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
#include <iostream>
#include <vector>
#include <stack>
#include <ctime>
 
using namespace std;
 
vector<int> sort(vector<int> vec)
{
    stack<int> qq;
    int vr = 0;
    int n = 0;
    
    do
    {
        vr = vec[n];
        for (int i = n; i < vec.size(); i++)
        {
 
            if (vr > vec[i])
            {
                vr = vec[i];
                qq.push(i);
            }
 
            if (i == vec.size() - 1)
            {
                vec[qq.top()] = vec[n];
                vec[n] = vr;
            }
 
        }
 
        n++;
 
    } while (n < vec.size());
 
    return vec;
}
 
 
 
int main()
{
    
    vector<int> vec(6);
    srand(time(0));
    for (int i = 0; i < 6; i++)
    {
        vec[i] = 1 + rand() % 60;
        cout << vec[i] << endl;
    }
    
    vec = sort(vec);
 
    for (int i = 0; i < 6; i++)
    {
        
        cout <<" New  "<< vec[i] << endl;
    }
 
    system("pause");
    return 0;
}
Добавлено через 1 час 21 минуту
Всё разобрался
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2015, 19:48
Ответы с готовыми решениями:

Сортировка массива: сначала положительные по возрастанию, потом отрицательные по возрастанию
Пользователь вводит массив чисел,нужно отсортировать его методом выбора,что бы сначала шли...

Сортировка массива по возрастанию
Вот программа, которая вычисляет количество одинаковых элементов в массиве, надо перед тем как...

Сортировка массива по возрастанию
Помогите пожалуйста, а то выходит какой-то бред. Нужно напистаь прогу, а именно: имеется двумерный...

Сортировка массива по возрастанию
Никак понять не могу! Как отсортировать массив по возрастанию!? Объявляю массив в виде...

4
30 / 30 / 38
Регистрация: 23.01.2015
Сообщений: 174
24.01.2015, 19:53 2
Лучший ответ Сообщение было отмечено Morr123 как решение

Решение

Пробуйте отсортировать:
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
#include <iostream>
#include <vector>
#include <stack>
#include <ctime>
 
using namespace std;
 
vector<int> sort(vector<int> vec)
{
    int n = 0;
    std::stack<int> qq;
    
    do {
            int vr_i = n, index = vr_i+1;
            while (index != vec.size())
            {
                   if (vec[index] > vec[vr_i])
                   {
                       vr_i = index;
                       qq.push(vr_i);
                   }
    
                   index++;
            }
 
            if (n != vr_i)
            {
                int tmp = vec[n];
                vec[n] = vec[qq.top()];
                vec[qq.top()] = tmp;
            }
 
            n++;
 
    } while (n != vec.size());
 
    return vec;
}
 
int main()
{
    vector<int> vec(6);
    srand((unsigned)time(0));
    for (int i = 0; i < 6; i++)
    {
        vec[i] = 1 + rand() % 60;
        cout << vec[i] << endl;
    }
 
    vec = sort(vec);
 
    for (int i = 0; i < 6; i++)
    {
 
        cout << " New  " << vec[i] << endl;
    }
 
    system("pause");
    return 0;
}
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
24.01.2015, 19:56 3
Цитата Сообщение от Morr123 Посмотреть сообщение
C++
1
vr = vec[n];
выход за границы вектора
0
30 / 30 / 38
Регистрация: 23.01.2015
Сообщений: 174
24.01.2015, 20:01 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
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
#include <iostream>
#include <vector>
#include <stack>
#include <ctime>
 
using namespace std;
 
vector<int> sort(vector<int> vec)
{
    int n = 0;
    std::stack<int> qq;
    
    for (int n = 0; n != vec.size(); n++)
    {
            int vr_i = n, index = vr_i+1;
            while (index != vec.size())
            {
                   if (vec[index] > vec[vr_i])
                   {
                       vr_i = index;
                       qq.push(vr_i);
                   }
    
                   index++;
            }
 
            if (n != vr_i)
            {
                int tmp = vec[n];
                vec[n] = vec[qq.top()];
                vec[qq.top()] = tmp;
            }
    }
 
    return vec;
}
 
int main()
{
    vector<int> vec(6);
    srand((unsigned)time(0));
    for (int i = 0; i < 6; i++)
    {
        vec[i] = 1 + rand() % 60;
        cout << vec[i] << endl;
    }
 
    vec = sort(vec);
 
    for (int i = 0; i < 6; i++)
    {
 
        cout << " New  " << vec[i] << endl;
    }
 
    system("pause");
    return 0;
}
http://codepad.org/qdEAqHIc
Миниатюры
Сортировка массива по возрастанию  
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
24.01.2015, 20:07 5
Цитата Сообщение от 1XPLoade1 Посмотреть сообщение
Нет у меня все правильно работает
если это мне адресовано, то обратите внимание, цитату из чьего сообщения я использовал.
0
24.01.2015, 20:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2015, 20:07
Помогаю со студенческими работами здесь

Сортировка массива по возрастанию
Как реализовать сортировку по возрастанию в массиве?

Сортировка массива по возрастанию
Помогите пожалуйста отсортировать элементы одномерного массива по возрастанию. Дело в том, что...

Сортировка массива по возрастанию
Вот мой код массива, мне нужно отсортировать его по возрастанию, (т.е от 0 до 40). Не очень понимаю...

Сортировка массива по возрастанию
Задача состоит в следующем. Сортировать двумерный массив по возрастанию, методом выбора максимума,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru