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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.96
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 689
16.07.2011, 17:27     Пузырьковый метод #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
#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;
}
Миниатюры
Пузырьковый метод  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2011, 17:27     Пузырьковый метод
Посмотрите здесь:

C++ Сортировка массивов методом прямых обменов или «пузырьковый»
Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии) C++
C++ Методы сортировки массивов.Метод пузырьковый
C++ Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя)
C++ Производный класс: метод возведения в произвольную степень, и метод для вычисления логарифма числа
Класс vector (поля: координаты, 2 конструктора, метод нахождения длины вектора и метод вывода координат на экран) C++
C++ СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
16.07.2011, 17:35     Пузырьковый метод #2
Вы во вложенном цикле сравниваете элементы массива с индексами x и x + 1. Однако x у вас меняется от нуля до 5 (не включительно). Значит однажды x + 1 станет равен 5, хотя в массиве элементы имеют индексы с 0 по 4. Т.е. вы выйдете за границы массива.
Robotun
 Аватар для Robotun
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 11
16.07.2011, 17:45     Пузырьковый метод #3
Попробуй перекомпилировать... У меня всё работает
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.07.2011, 17:52     Пузырьковый метод #4
Читаем до просветления: Алгоритмы сортировок
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 689
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++)
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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++)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2015, 23:05     Пузырьковый метод
Еще ссылки по теме:

Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд C++
Пузырьковый метод сортировки с оптимизацией C++
C++ Мой код - метод бисекции, метод секущих (метод хорд)
C++ Не сходится теория и практика метод Шелла и метод простого выбора
C++ Исследовать итерационный метод- метод касательных для решения нелинейных уравнений

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

Или воспользуйтесь поиском по форуму:
n0v1c14
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 3
28.11.2015, 23:05     Пузырьковый метод #7
Подскажите пожалуйста, за что , в этом коде, отвечают переменные r,p,z,x?
Yandex
Объявления
28.11.2015, 23:05     Пузырьковый метод
Ответ Создать тему
Опции темы

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