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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 15:16     Сортировка массивов методом пузырька, вставки и быстрым способом #1
Помогите сделать три программы которые создают двумерные массивы рандомом и сортируют методом пузырька, вставки и быстрым способом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 15:16     Сортировка массивов методом пузырька, вставки и быстрым способом
Посмотрите здесь:

C++ Сортировка методом Пузырька
C++ Сортировка методом пузырька
Сортировка методом пузырька C++
Сортировка методом пузырька C++
C++ Сортировка методом пузырька
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 16:45     Сортировка массивов методом пузырька, вставки и быстрым способом #2
Поясни сортирует строки, столбцы, всю матрицу.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 16:59  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #3
всю матрицу
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 17:19     Сортировка массивов методом пузырька, вставки и быстрым способом #6
А как тебе вариант матрицу сохранить в массиве, отсортировать и обратно в матрицу?
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 17:30  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #7
А зачем возвращать(не понимаю как)? Лучше отдельно сортировку что бы видно и все понятно было
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 17:33     Сортировка массивов методом пузырька, вставки и быстрым способом #8
Так скажем не лучше. Просто обычной сортировкой, очень много вложенных циклов.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 17:43  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #9
Ну если вы мне объясните потом как вернуть сортировку в матрицу то можно попробовать.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 18:13     Сортировка массивов методом пузырька, вставки и быстрым способом #12
Здесь не надо.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 18:17  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #13
а понятно

Добавлено через 3 минуты
Так а если будет возвращение то и код будет поменьше ?
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 18:24     Сортировка массивов методом пузырька, вставки и быстрым способом #14
Нет. Дело не в поменьше, а в том , что столько вложенных циклов уменьшают скорость.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 18:31  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #15
ну в принципе скорость не так важна как понятность
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 18:36     Сортировка массивов методом пузырька, вставки и быстрым способом #16
отличие будет в одной строчке. Понятность будет такой же.
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 18:48  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #17
ну пузырьковое я понял, а как написать выборочное и быстрое?
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.10.2012, 18:51     Сортировка массивов методом пузырька, вставки и быстрым способом #18
Вот тут описаны сортировки Алгоритмы сортировок
Ganibal012
1 / 1 / 0
Регистрация: 01.10.2012
Сообщений: 23
06.10.2012, 19:31  [ТС]     Сортировка массивов методом пузырька, вставки и быстрым способом #19
Ок попробую сам, если что напишу.

Добавлено через 12 минут
это типа для каждого цикла свою функцию писать если вставкой?

Добавлено через 18 минут
чет не выходит у меня
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2012, 19:33     Сортировка массивов методом пузырька, вставки и быстрым способом
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
06.10.2012, 19:33     Сортировка массивов методом пузырька, вставки и быстрым способом #20
David Sylva, зачем так все усложнять, когда можно все проще сделать.

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
#include <iostream>
#include <iomanip>
using namespace std;
 
const int M = 3;
const int N = 5;
 
void InsertSort(int *a, int n)
{
   int i, j, buf;
   for (i = 1; i < n; i++)
   {
      buf = a[i];
      j = i - 1;
      while (j >= 0 && a[j] > buf)
      {
         a[j+1] = a[j];
         j--;
      }
      a[j+1] = buf;
   }
}
 
int main()
{
    int i, j, a[M][N];
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
            cout << setw(5) << (a[i][j] = rand()%20-10) << " ";
        cout << endl;
    }
    InsertSort(*a, M*N);
    cout << endl;
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
            cout << setw(5) << a[i][j] << " ";
        cout << endl;
    }
    return 0;
}
Yandex
Объявления
06.10.2012, 19:33     Сортировка массивов методом пузырька, вставки и быстрым способом
Ответ Создать тему
Опции темы

Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru