0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 10
1

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

28.10.2010, 20:31. Показов 1832. Ответов 3
Метки нет (Все метки)

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
cout << "vvedite chislo elementov massiva" << endl;
int n, z, j, k;
cin >> n;
cout << "0 - slychainoe zapolenie" << endl << "1 - zapolnenie vruchnyu" <<endl;
cin >> z;
//заполнение массива    
int i;
int * mas = new int[n];
for (i=0; i<n; i++)
{
if (z==1)     
{
cout << endl << "mas[" << i << "]=";
cin >> mas[i];
}
else
{
mas[i]=rand();
}
}
// количество различных
k=0;
for (i=0; i<n; i++)
{
for (j=i+1;j<n;j++)
if(mas[i]==mas[j])
break;
if (j==n)
k++;
}
cout << endl << "kolichestvo razlichnyx elementov= " << k ;
// произведение
int max,proizvedenie;
max=0;
proizvedenie=1;
for (i=0; i<n; i++)
if(abs(mas[i])>abs(mas[max]))
max=i;
for (i=max+1; i<n; i++)
proizvedenie=proizvedenie*mas[i];
cout << endl << "proizvedenie elementov= " << proizvedenie;
// преобразование
i=0; j=n-1;
while(i<j)
{
while ((mas[i]<0) && (i<j)) i++;
while ((mas[j]>=0) && (i<j)) j--;
if (i<j)
{
max=mas[i];
mas[i]=mas[j];
mas[j]=max;
i++;
j--;
}
}
cout<< "Preobrazovannyi massiv" << endl;
for (i=0; i<n; i++)
cout<< mas[i] << "   ";
//////////////////////// сортировка
int c;
for (i=0;i<=n;i++)
if(mas[i]>mas[i+1])
for(j=0;j<n-i-1;j++)
if(mas[j]>mas[j+1])
{
c=mas[j+1];
mas[j+1]=mas[n];
mas[n]=c;
for(j=0;j<n;k++)
if(mas[j]>mas[n++])
c=mas[n+i];
mas[j+1]=mas[j];
mas[j]=c;
i++;
}
cout<< "Sortirovka puzirkom - " << endl;
for (i=0; i<n; i++)
cout<< mas[i] << "  ";
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2010, 20:31
Ответы с готовыми решениями:

Сортировка методом «пузырька»
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке...

Сортировка методом пузырька
Помогите пожалуйста исправить ошибки. Сортировка пузырьком многомерного массива. #include...

Сортировка методом пузырька
//--------------------------------------------------------------------------- #include &lt;conio.h&gt;...

Сортировка методом Пузырька
Сортировка методом Пузырька!!! Эта программа мне нужна на курсовую - помогите сделать! Если можно...

3
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
28.10.2010, 20:34 2
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
#include <iostream>
#include <conio.h>
 
void bubble(int*Arr, int size);
 
int main()
{
   int*Arr;
   int n=0;
   std::cout<<"Enter n: ";
   std::cin>>n;
   Arr=new int[n];
   for(int i=0; i<n; ++i)
      std::cin>>Arr[i];
   std::cout<<"Before sort\n";
   for(int i=0; i<n; ++i)
       std::cout<<Arr[i]<<' ';
   bubble(Arr, n);
   std::cout<<std::endl;
   std::cout<<"After sort\n";
   for(int i=0; i<n; ++i)
      std::cout<<Arr[i]<<' ';
      getch();
   return 0;
}
 
void bubble(int*Arr, int n)
{
    for(int i=0; i<n; ++i)
    {
        for(int j=i; j<n; ++j)
        {
            if(Arr[i]>Arr[j])
            {
               int temp=Arr[i];
               Arr[i]=Arr[j];
               Arr[j]=temp;
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 10
28.10.2010, 20:40  [ТС] 3
Сам алгоритм выполнения задания мне помятен.
Я не могу понять почему оно не выполняется, где моя ошибка.
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
28.10.2010, 20:50 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
 
int main()
{
cout << "vvedite chislo elementov massiva" << endl;
int n, z, j, k;
srand(time(0));
cin >> n;
cout << "0 - slychainoe zapolenie" << endl << "1 - zapolnenie vruchnyu" <<endl;
cin >> z;
//çàïîëíåíèå ìàññèâà 
int i;
int * mas = new int[n];
for (i=0; i<n; i++)
{
if (z==1) 
{
cout << endl << "mas[" << i << "]=";
cin >> mas[i];
}
else if(!z)
{
mas[i]=rand()%100;
}
}
// êîëè÷åñòâî ðàçëè÷íûõ
k=0;
for (i=0; i<n; i++)
{
for (j=i+1;j<n;j++)
if(mas[i]==mas[j])
break;
if (j==n)
k++;
}
cout << endl << "kolichestvo razlichnyx elementov= " << k ;
// ïðîèçâåäåíèå
int max,proizvedenie;
max=0;
proizvedenie=1;
for (i=0; i<n; i++)
if(abs(mas[i])>abs(mas[max]))
max=i;
for (i=max+1; i<n; i++)
proizvedenie=proizvedenie*mas[i];
cout << endl << "proizvedenie elementov= " << proizvedenie << endl;
// ïðåîáðàçîâàíèå
i=0; j=n-1;
while(i<j)
{
while ((mas[i]<0) && (i<j)) i++;
while ((mas[j]>=0) && (i<j)) j--;
if (i<j)
{
max=mas[i];
mas[i]=mas[j];
mas[j]=max;
i++;
j--;
}
}
cout<< "Preobrazovannyi massiv" << endl;
for (i=0; i<n; i++)
cout<< mas[i] << " ";
// ñîðòèðîâêà
for(int i = n-1; i >= 1; i--)
{
for(int j = 0; j < i; j++)
{
if(mas[j] > mas[j+1])
{
int foo = mas[j];
mas[j] = mas[j+1];
mas[j+1] = foo;
}
}
}
cout<< "Sortirovka puzirkom - " << endl;
for (i=0; i<n; i++)
cout<< mas[i] << " ";
cin.get();
cin.get();
return 0;
}
1
28.10.2010, 20:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2010, 20:50
Помогаю со студенческими работами здесь

Сортировка методом пузырька
Народ, помогите написать функциональное назначение сортировки методом пузырька))

Сортировка методом пузырька
Написать программу, которая методом обмена («пузырька») сортирует по убыванию введенный с...

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

Сортировка методом пузырька
Приветствую всех. Нужно решить простую задачу. Есть массив из 10 элементов от 0 по 9. И в нём...


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

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

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