С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Mger
1 / 1 / 1
Регистрация: 24.04.2013
Сообщений: 31
1

Сортировка двумерного массива пузырьком

25.01.2014, 19:25. Просмотров 2171. Ответов 13
Метки нет (Все метки)

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


6 18 13 13 20
15 21 17 0 0
7 3 22 24 21
4 8 16 17 12
17 14 17 24 14

-33686019 -33686019 -33686019 -33686019 0
0 3 4 6 7
8 12 13 13 14
14 15 16 17 17
20 21 22 24 24

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
73
74
75
76
77
78
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    srand((unsigned)time(0));
    int n, m;
    cout << "Введите количество строк: ";
    cin >> n;
    cout << "Введите количество столбцов: ";
    cin >> m;
    int **mas = new int*[n];
    for (int i = 0; i < m; i++)
    {
        mas[i] = new int[m];
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            mas[i][j]=rand()%+25;
        }
    }
    for (int i = 0; i < n; i++)
    {
        
        for (int j = 0; j < m; j++)
        {
            cout<<" "<< setw(3)<< mas[i][j]<<" ";
        }
        
        cout << endl;
    }
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j)
        {
            for (int i = 0; i < n; ++i)
            {
                for (int j = 0; j < m; ++j)
                {
                    if (i+1==n&&j+1==m)
                        {
                            continue;
                        }
                        else
                        {
                            if (j + 1 == m &&mas[i][j] > mas[i + 1][0])
                        {       
                            swap(mas[i][j],mas[i + 1][0]);
                        }
                        else
                        {
                            if (mas[i][j] > mas[i][j + 1])
                            {
                                swap(mas[i][j + 1],mas[i][j]);
                            }
                    }
                }
            }
        }
    }
    }
    cout << endl;
    for (int i = 0; i < n; i++)
    {
 
        for (int j = 0; j < m; j++)
        {
            cout << " " << setw(3) << mas[i][j] << " ";
        }
 
        cout << endl;
    }
    system("pause > void");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 19:25
Ответы с готовыми решениями:

Сортировка двумерного массива пузырьком
Всем привет! задача такая:Составить программу для сортировки массива данных...

Сортировка пузырьком двумерного массива.
Задание: Упорядочить массив по возрастанию элементов к-строки (использовать...

Сортировка двумерного Массива пузырьком
Всем Привет! Помогите пожалуйста отсортировать двумерный динамический массив...

Массив: Сортировка пузырьком двумерного массива
Код вроде бы робочий но в отсортированном масиве в i-1 j-1 елементе выскакивает...

Сортировка массива пузырьком
Здравствуйте! Нужен код сортировки массива пузырьком. Сначала на экран...

13
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,756
Записей в блоге: 1
25.01.2014, 19:45 2
Чего-то ты сильно перемудрил с количеством вложенных циклов-достаточно 2-3 цикла.
И Где-то индекс выходит за пределы массива, загребая в массив мусор при попытке swаp'а!
1
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
25.01.2014, 19:47 3
Mger, У меня ваш код вроде нормально работает
Но с сортировкой вы все таки перемудрили
1
Ev_Hyper
Заблокирован
25.01.2014, 19:57 4
C++
1
swap(mas[i][j],mas[i + 1][0]);
что тут должно менятся при i = n-1?
C++
1
swap(mas[i][j + 1],mas[i][j]);
а тут при j=m-1?
1
MrGluck
Модератор
Эксперт CЭксперт С++
8106 / 4958 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
25.01.2014, 20:00 5
Цитата Сообщение от Mger Посмотреть сообщение
for (int i = 0; i < n; ++i)
* * {
* * * * for (int j = 0; j < m; ++j)
* * * * {
* * * * * * for (int i = 0; i < n; ++i)
* * * * * * {
* * * * * * * * for (int j = 0; j < m; ++j)
* * * * * * * * {


C++
1
2
3
4
5
6
7
8
9
// пузырьковая сортировка по возрастанию
for (int i=0; i < M; i++)
    for (int j=M-1; j > i; j--)
        if (arr[j] < arr[i])
        {
            int tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }
C++
1
2
3
4
5
6
7
8
9
// пузырьковая сортировка по убыванию
for (int i=0; i < M; i++)
    for (int j=M-1; j > i; j--)
        if (arr[i] < arr[j])
        {
            int tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }
1
Mger
1 / 1 / 1
Регистрация: 24.04.2013
Сообщений: 31
25.01.2014, 20:04  [ТС] 6
Я отсюда взял это код http://www.youtube.com/watch?v=hFeLbB37I4Q
0
Ev_Hyper
Заблокирован
25.01.2014, 20:05 7
Mger, 0_0 не смотрите такие видеоуроки.
2
Mger
1 / 1 / 1
Регистрация: 24.04.2013
Сообщений: 31
25.01.2014, 20:09  [ТС] 8
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Mger, 0_0 не смотрите такие видеоуроки.
можете помочь с сортировкой ?
0
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
25.01.2014, 20:11 9
Цитата Сообщение от Mger Посмотреть сообщение
можете помочь с сортировкой ?
Чем вам не нравится сортировка от MrGluck?
1
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,756
Записей в блоге: 1
25.01.2014, 20:12 10
И вообще видеоуроки не смотри!
http://www.cyberfoqum.ru/cpp-beginners/thread717498.html#post3794635
1
EragonJKee
9 / 10 / 2
Регистрация: 19.01.2014
Сообщений: 83
25.01.2014, 20:15 11
Вам же выше написали код.
1
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,756
Записей в блоге: 1
25.01.2014, 20:18 12
Отсортировать массив
1
Mger
1 / 1 / 1
Регистрация: 24.04.2013
Сообщений: 31
25.01.2014, 20:20  [ТС] 13
Всем большое спасибо разобрался
0
Esecman
38 / 26 / 12
Регистрация: 31.12.2013
Сообщений: 329
25.01.2014, 21:49 14
кидал на форум сортировка пузырьком из .txt файла
Ищи. Приват можно сказать ^_^
1
25.01.2014, 21:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 21:49

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

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

Сортировка массива пузырьком - найти ошибку в коде
В массив вношу 46 случайных чисел от 1 до 26 включая, упорядочиваю по убыванию...


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

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

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