15 / 14 / 10
Регистрация: 22.03.2010
Сообщений: 695
1

Пузырьковый метод

16.07.2011, 17:27. Показов 5324. Ответов 6
Метки нет (Все метки)

Не могу написать простейший пузырьковый метод.
Откуда берется ноль ?
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>
using namespace std;
int main()
{setlocale(LC_ALL,"Rus");
int a[5],r=100;
for(int y=0;y<5;y++)
{cout<<"Введите "<<y+1<<" число --> ";
cin>>a[y];
}
for(int p=0;p<5;p++)
{cout<<" Число --> "<<a[p]<<endl;}
for(int z=0;z<4;z++)
for(int x=0;x<5;x++)
 
if(a[x]>a[x+1])
{
r=a[x];
a[x]=a[x+1];
a[x+1]=r;
}
 
for(int h=0;h<5;h++)
    cout<<a[h]<<endl;
 
cin.get();
cin.get();
return 0;
}
Миниатюры
Пузырьковый метод  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2011, 17:27
Ответы с готовыми решениями:

Пузырьковый метод сортировки с оптимизацией
Переписать все положительные элементы матрицы A(10,10) в вектор Y. Используя метод пузырьковой...

Методы сортировки массивов.Метод пузырьковый
Метод пузырьковый nLeft 600 nRight 1600 Помогите сделать Зарание Благодарю.

Пузырьковый метод сортировки через оператор while
Доброго времени суток, помогите пожалуйста написать программу в С++, которая будет расставлять по...

Сортировка массивов методом прямых обменов или «пузырьковый»
Введите с клавиатуры текст в массив символов. Определите, какие из слов в массиве состоят из букв...

6
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
16.07.2011, 17:35 2
Вы во вложенном цикле сравниваете элементы массива с индексами x и x + 1. Однако x у вас меняется от нуля до 5 (не включительно). Значит однажды x + 1 станет равен 5, хотя в массиве элементы имеют индексы с 0 по 4. Т.е. вы выйдете за границы массива.
1
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 11
16.07.2011, 17:45 3
Попробуй перекомпилировать... У меня всё работает
0
Эксперт С++
5827 / 3478 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
16.07.2011, 17:52 4
Читаем до просветления: Алгоритмы сортировок
1
15 / 14 / 10
Регистрация: 22.03.2010
Сообщений: 695
16.07.2011, 19:26  [ТС] 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
#include <iostream>
using namespace std;
int main()
{setlocale(LC_ALL,"Rus");
int a[5],r=100;
for(int y=0;y<5;y++)
{cout<<"Введите "<<y+1<<" число --> ";
cin>>a[y];
}
for(int p=0;p<5;p++)
{cout<<" Число --> "<<a[p]<<endl;}
for(int z=0;z<5;z++)
for(int x=0;x<4;x++)
 
if(a[x]>a[x+1])
{
r=a[x];
a[x]=a[x+1];
a[x+1]=r;
}
 
for(int h=0;h<5;h++)
        cout<<a[h]<<endl;
 
cin.get();
cin.get();
return 0;
}
Вот в этом

C++
1
2
for(int z=0;z<5;z++)
for(int x=0;x<4;x++)
У меня же было
C++
1
2
for(int z=0;z<4;z++)
for(int x=0;x<5;x++)
0
Эксперт С++
4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
16.07.2011, 20:47 6
parkito, Можно вот это:
C++
1
2
for(int z=0;z<5;z++)
for(int x=0;x<4;x++)
немного ускорить:
C++
1
2
for(int z=0;z<5;z++)
for(int x=0;x<4-z;x++)
0
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 3
28.11.2015, 23:05 7
Подскажите пожалуйста, за что , в этом коде, отвечают переменные r,p,z,x?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2015, 23:05
Помогаю со студенческими работами здесь

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя)
Здравствуйте! Дали весьма интересное задание. Сравнить два вышеуказанных метода сортировки для...

Мой код - метод бисекции, метод секущих (метод хорд)
Всем привет!!! Изучаем в институте С++. Сделал код, и там, и там одна и та же проблема - при любых...

Пузырьковый метод
Сформировать массив из ста элементов и провести сортировку пузырьковым методом.


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

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

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