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

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

Восстановить пароль Регистрация
 
Максюта
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 13
22.01.2014, 00:47     Сортировка методом пузырька #1
Помогите пожалуйста исправить ошибки. Сортировка пузырьком многомерного массива.
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
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
int i, j, p, k;
int a[3][3];
int randomize ();
cout<<"vveden massiv: ";
    {
    for (i=0; i<=3; i++)
        for(j=0; j<=3; j++)
            do
            {
            a[i][j]=1+rand()%257;
            cout<<a[3][3]<<" ";
            }
 
    for p=0; i<=3; i++;
        {
        for (i=0; i<=(3-1); i++)
            
            for(j=0; j<=(3-1); j++)
                if a[p,j]>a[p,j+1]
                {
                    k=a[p,j];
                    a[p,j]=a[p,j+1];
                    a[p,j+1]=k
                }
        
    }
    
cout<<"poluchaem massiv: ";
{
    for (i=0; i<=3; i++)
        for(j=0; j<=3; j++)
            do
            {
            cout<<a[i][j]<<" ";
            }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 00:47     Сортировка методом пузырька
Посмотрите здесь:

C++ Сортировка методом Пузырька
C++ Сортировка методом пузырька
C++ Сортировка методом пузырька
Сортировка методом пузырька C++
Сортировка методом пузырька C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 00:49     Сортировка методом пузырька #2
Цитата Сообщение от Максюта Посмотреть сообщение
for p=0; i<=3; i++;
Что это?
Максюта
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 13
22.01.2014, 00:57  [ТС]     Сортировка методом пузырька #3
повторяет сортировку для каждой строки c 1 и по 3.
GekToR92
1 / 1 / 0
Регистрация: 05.01.2014
Сообщений: 11
22.01.2014, 01:07     Сортировка методом пузырька #4
Цитата Сообщение от Максюта Посмотреть сообщение
for (i=0; i<=(3-1); i++)
for(j=0; j<=(3-1); j++)
не совсем понимаю зачем ты отнимаешь 1. Попробуй убрать и запусти заново
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 01:07     Сортировка методом пузырька #5
Максюта,
Цитата Сообщение от Максюта Посмотреть сообщение
for p=0; i<=3; i++;
для записи цикла нужно использовать круглые скобки, и уж точно не нужно ставить ; сразу после инициализации цикла. Скорей всего вы имели ввиду:
C++
1
2
3
4
for(int p = 0;p<3;p++)
{
//тело цикла
}
Максюта
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 13
22.01.2014, 01:27  [ТС]     Сортировка методом пузырька #6
Помогите пожалуйста переписать программу c Pascal на С++

Pascal
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
Program sortirovka;
const
    m=3;
    n=3;
var
    a:array[1..n, 1..m] of integer;
    i, j, p, k: integer;
 
begin
    randomize;
    writeln ('ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў: ');
    for i:=1 to n do
    begin
         for j:=1 to m do
         begin
              a[i,j]:=random(256);
              write (a[i,j]:4);
         end;
    writeln;
    end;
 
    for p:=1 to m do
      for i:=1 to n-1 do
      begin
          for j:=1 to n-i do
              if a[p,j] > a[p,j+1] then
              begin
                  k:=a[p,j];
                  a[p,j]:=a[p,j+1];
                  a[p,j+1]:=k
              end;
      end;
    writeln ('ÎòñîðòèðîâГ*Г*Г*ûé Г¬Г*Г±Г±ГЁГў: ');
    for i:=1 to n do
    begin
         for j:=1 to m do
              write (a[i,j]:4);
    writeln;
    end;
end.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
22.01.2014, 01:46     Сортировка методом пузырька #7
//Пузырьковая сортировка или сортировка погружением.
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
int main()
{
srand(time(NULL));
const int size = 20;
int A[size] = {};
int temp,k;
 
for (int i = 0; i < size; i++)
A[i] =1+ rand() % 100;
for (int j = 1; j < size; j++)
for ( k = 0; k < size - 1; k++)
if (A[k] > A[k + 1])
{
temp = A[k];
A[k] = A[k + 1];
A[k + 1] = temp;
}
//выводим на экран отсортированный массив
for (int l = 0; l < size; l++)
cout << A[l] << "; ";
cout << endl << endl;
return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
22.01.2014, 01:49     Сортировка методом пузырька #8
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
#include <cstdlib>
#include <ctime>
#include <iostream>
 
int main()
{
    std::srand(time(0));    // инициализируем генератор ПСЧ текущим временем
    const int M = 3, N = 4; // размеры нашего массива
    int A[M][N];            // объявляем двумерный массив
    int B[M*N];             // вспомогательный массив
 
    std::cout << "Before:\n";
    for (int i=0; i < M; i++) // для каждой строки массива
    {
        for (int j=0; j < N; j++) // для каждого элемента
        {
            A[i][j] = rand() % 100; // инициализиоруем СЧ в диапазоне [0, 99]
            std::cout << A[i][j] << " "; // выводим на экран
            B[i*N + j] = A[i][j];        // запоминаем значение
        }
        std::cout << std::endl;
    }
 
    // сортируем вспомогательный массив с помощью пузырьковой сортировки
    for (int i=0; i < M*N; i++)
        for (int j=M*N - 1; j > i; j--)
            if (B[j] < B[i])
            {
                int tmp = B[i];
                B[i] = B[j];
                B[j] = tmp;
            }
 
    // переносим значения в наш двумерный массив и выводим их на экран
    std::cout << "\nAfter:\n";
    for (int i=0; i < M; i++) // для каждой строки массива
    {
        for (int j=0; j < N; j++) // для каждого элемента
        {
            A[i][j] = B[i*N + j];
            std::cout << A[i][j] << " "; // выводим на экран
        }
        std::cout << std::endl;
    }
}
Прошу обратить внимание, что индексация элементов массива начинается с 0 и идет до N-1 включительно. Элемента с индексом N нет. (Принимает за N размер массива).
Максюта
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 13
22.01.2014, 02:07  [ТС]     Сортировка методом пузырька #9
Спасибо за помощь) Все доступно написали. Я только не поняла как задался массив
Цитата Сообщение от Genn55 Посмотреть сообщение
int A[size] = {};
фигурные скобки зачем? Объясните, пожалуйста)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2014, 02:19     Сортировка методом пузырька
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
22.01.2014, 02:19     Сортировка методом пузырька #10
Максюта, я же вам здесь дал подробный ответ с комментариями. Зачем вам еще темы дублировать? У нас это запрещено правилами форума.

Фигурные скобки используются для инициализации массива. Если мы не указываем какие-либо элементы явно, то они заполняются нулями. Можно сказать, что здесь все элементы ими заполняются.
Yandex
Объявления
22.01.2014, 02:19     Сортировка методом пузырька
Ответ Создать тему
Опции темы

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