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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
#1

Сортировка массивов методом пузырька, вставки и быстрым способом - C++

06.10.2012, 15:16. Просмотров 3418. Ответов 25
Метки нет (Все метки)

Помогите сделать три программы которые создают двумерные массивы рандомом и сортируют методом пузырька, вставки и быстрым способом.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 16:45     Сортировка массивов методом пузырька, вставки и быстрым способом #2
Поясни сортирует строки, столбцы, всю матрицу.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 16:59  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #3
всю матрицу
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 17:04     Сортировка массивов методом пузырька, вставки и быстрым способом #4
У тебя какие мысли, как сделать лучше?
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 17:17  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #5
ну я делал с другом пузырьковое сортирование

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
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    const int n=10;
    const int m=15;
    int a[n][m];
    cout<<"Mac1"<<endl;
    int num=1;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            a[i][j]=rand()%100;
            cout<<a[i][j]<<"  ";
            num++;
        }
        cout<<endl;
    }
 
    for(int l=0;l<n;l++)
    {
        for(int k=0;k<m;k++)
        {
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<m;j++)
                {
                    if (i+1==n && j+1==m)
                    {
                        continue;
                    }
                    else
 
                    {
                        if(a[i][j]>a[i][j+1])
                        {
                            int t=a[i][j];
                            a[i][j]=a[i][j+1];
                            a[i][j+1]=t;
 
                        }                                       
                    }
 
                }           
            }
 
        }
 
    }
 
    cout<<"mac2"<<endl;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout<<a[i][j]<<"  ";
        }
        cout<<endl;
    }
 
    system("PAUSE>>VOID");
    return 0;
}

и я хотел по другому попробовать но у меня не получается.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 17:19     Сортировка массивов методом пузырька, вставки и быстрым способом #6
А как тебе вариант матрицу сохранить в массиве, отсортировать и обратно в матрицу?
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 17:30  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #7
А зачем возвращать(не понимаю как)? Лучше отдельно сортировку что бы видно и все понятно было
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 17:33     Сортировка массивов методом пузырька, вставки и быстрым способом #8
Так скажем не лучше. Просто обычной сортировкой, очень много вложенных циклов.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 17:43  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #9
Ну если вы мне объясните потом как вернуть сортировку в матрицу то можно попробовать.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 17:53     Сортировка массивов методом пузырька, вставки и быстрым способом #10
Вот тебе обычный способ
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
#include <iostream>
#include <iomanip>
#include <cstdlib> 
#include <ctime>  
 
void bubblesort(int matrix[][5]) 
{ 
    int k, l, i, j; 
 
    for ( k = 0; k < 5; k++) 
    { 
        for ( l = 0; l < 5; l++) 
        { 
            for ( i = 0; i < 5; i++) 
            { 
                for ( j = 0; j < 5; j++) 
                { 
                    if( i + 1 == 5 && j + 1 == 5) 
                        continue; 
                    else 
                    { 
                        if(j+1 == 5 && matrix[i][j] > matrix[i+1][0]) 
                        { 
                            int temp = matrix[i][j]; 
                            matrix[i][j] = matrix[i+1][0]; 
                            matrix[i+1][0] = temp; 
                        } 
                        else 
                        { 
                            if(matrix[i][j] > matrix[i][j+1]) 
                            { 
                                int temp = matrix[i][j]; 
                                matrix[i][j] = matrix[i][j+1]; 
                                matrix[i][j+1] = temp; 
                            } 
                        } 
                    } 
                } 
            } 
        } 
    }
}
 
int main() 
{ 
    srand((unsigned) time(0)); 
    const int size = 5; 
    int matrix[size][size]; 
    int i, j;
    for ( i = 0; i < size; i++) 
        for ( j = 0; j < size; j++) 
        { 
            matrix[i][j] = rand() % 100; 
            if( j % size == 0)  
                std::cout << std::endl;
                std::cout << std::setw(3) << matrix[i][j]; 
        } 
        std::cout << std::endl << std::endl; 
        bubblesort(matrix);  
 
        for ( i = 0; i < size; i++) 
            for ( j = 0; j < size; j++) 
            { 
                if( j % size == 0) 
                    std::cout << std::endl; 
                std::cout << std::setw(3) << matrix[i][j]; 
            } 
            std::cout << std::endl;
 
}
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 18:12  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #11
Спасибо, а где же возвращение сорта в матрицу?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 18:13     Сортировка массивов методом пузырька, вставки и быстрым способом #12
Здесь не надо.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 18:17  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #13
а понятно

Добавлено через 3 минуты
Так а если будет возвращение то и код будет поменьше ?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
06.10.2012, 18:24     Сортировка массивов методом пузырька, вставки и быстрым способом #14
Нет. Дело не в поменьше, а в том , что столько вложенных циклов уменьшают скорость.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2012, 18:31     Сортировка массивов методом пузырька, вставки и быстрым способом
Еще ссылки по теме:
Сортировка методом «пузырька» C++
C++ Сортировка методом пузырька
C++ Сортировка методом пузырька
C++ Сортировка методом пузырька
C++ Сортировка методом пузырька

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

Или воспользуйтесь поиском по форуму:
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 18:31  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #15
ну в принципе скорость не так важна как понятность
Yandex
Объявления
06.10.2012, 18:31     Сортировка массивов методом пузырька, вставки и быстрым способом
Ответ Создать тему
Опции темы

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