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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
#1

Пузырьковая сортировка - C++

13.10.2013, 14:36. Просмотров 437. Ответов 2
Метки нет (Все метки)

Здравствуйте .Объясните , пожалуйста , подробно , как работает пузырьковая сортировка .
Получается сравниваются два соседних элемента и если элемент с меньшим индексом больше другого элемента , то они переставляются местами . Я немного запутался с циклами .
Нашёл такой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const int arraysize = 10;
int array[arraysize] = {7, 12, 100, 1, 78, 1234, 3, 18900, 512, 5021};
int hold;
//выводим на экран исходный неотсортированный массив 
for (int i = 0; i < arraysize; i++)
 
cout << array[i] << "; ";
cout << endl << endl;
 
for (int j = 1; j < arraysize; j++)
for (int k = 0; k < arraysize - 1; k++)
if (array[k] > array[k + 1])
  {hold = array[k];
   array[k] = array[k + 1];
   array[k + 1] = hold;
  }
Я не пойму принцип работы . Например , есть ряд чисел: 5,3,8,1
получается , что 5>3, а должно быть наоборот .Исходя из кода нужно сделать:hold=3 , 3=5,5=hold - вот это не понятно , какая суть того , что 5=hold?
Как работают цикли ? Почему в первом проходим от 1 ?Этот цикл для прохождения по всех элементах?
а что делается во втором ?

Помогите , пожалуйста , разобраться . Буду благодарен.

Добавлено через 12 минут
Цитата Сообщение от NNN7 Посмотреть сообщение
Здравствуйте .Объясните , пожалуйста , подробно , как работает пузырьковая сортировка .
Получается сравниваются два соседних элемента и если элемент с меньшим индексом больше другого элемента , то они переставляются местами . Я немного запутался с циклами .
Нашёл такой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const int arraysize = 10;
int array[arraysize] = {7, 12, 100, 1, 78, 1234, 3, 18900, 512, 5021};
int hold;
//выводим на экран исходный неотсортированный массив 
for (int i = 0; i < arraysize; i++)
 
cout << array[i] << "; ";
cout << endl << endl;
 
for (int j = 1; j < arraysize; j++)
for (int k = 0; k < arraysize - 1; k++)
if (array[k] > array[k + 1])
  {hold = array[k];
   array[k] = array[k + 1];
   array[k + 1] = hold;
  }
Я не пойму принцип работы . Например , есть ряд чисел: 5,3,8,1
получается , что 5>3, а должно быть наоборот .Исходя из кода нужно сделать:hold=3 , 3=5,5=hold - вот это не понятно , какая суть того , что 5=hold?
Как работают цикли ? Почему в первом проходим от 1 ?Этот цикл для прохождения по всех элементах?
а что делается во втором ?

Помогите , пожалуйста , разобраться . Буду благодарен.
c перестановкой я уже разобрался , а вот с циклами ещё не совсем . объясните , пожалуйста вот эти записи :
C++
1
2
for (int j = 1; j < arraysize; j++) 
for (int k = 0; k < arraysize - 1; k++)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 14:36     Пузырьковая сортировка
Посмотрите здесь:

Пузырьковая сортировка - C++
Хочу спросить, это пузырьковая сортировка или нет? Как её правильно реализовать? Как оценить эффективность алгоритма сортировки по числу...

Сортировка пузырьковая - C++
Привет всем!помогите отсортировать задачку. #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { const...

Пузырьковая сортировка - C++
Здравствуйте хочу разобраться в сортировках....нашла пример в книге.....но почему то она не работает....если не сложно объясните...

Пузырьковая сортировка - C++
Здравствуйте. Есть код, который сортирует методом пузырька по строчкам, что мне поменять, чтобы была сортировка по столбцам начиная с...

Пузырьковая сортировка - C++
Помогите плз. Работаю в Visual Studio 2010. Написал алгоритм пузырьковой сортировки, но когда запускаю вместо одной из цифр выводится самое...

Пузырьковая сортировка - C++
Есть курсовик. Есть пузырьковая сортировка Есть одно НО. Сортировка должна быть сделана через массив указателей, а не через массив...

пузырьковая сортировка - C++
Задача не сложная, но у меня нет времени ее решать: дан одномерный массив, нужно сделать пузырьковую сортировку по нему

пузырьковая сортировка - C++
Пожалуйста помогите написать программу, которая выполняет сортировку исходного целочисленного массива по возрастанию и убыванию. Исходные...

Пузырьковая сортировка - C++
В чес дело не могу понять? Переменной массива с индексом X присваивается какое то левое значение. #include &lt;iostream&gt; #include...

Пузырьковая Сортировка - C++
Описать структуру с именем Train, содержащую следующие поля: Point (название пункта назначения), Number (номер поезда), Time (время...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
13.10.2013, 15:36     Пузырьковая сортировка #2
Цитата Сообщение от NNN7 Посмотреть сообщение
c перестановкой я уже разобрался , а вот с циклами ещё не совсем . объясните , пожалуйста вот эти записи :
C++
1
2
for (int j = 1; j < arraysize; j++) 
for (int k = 0; k < arraysize - 1; k++)
пожалуй, если не разобрался с циклами, рано тебе ещё переходить к сортировкам. Почитай, что такое цикл for, и напиши пару простейших программ с этим циклом. Ещё проще, чем сортировка пузырьком.
Например, найди с помощью цикла сумму чисел от 1 до 10
затем найди с помощью цикла сумму чётных чисел от 1 до 10
Grimbo
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
13.10.2013, 18:41     Пузырьковая сортировка #3
В скобках сначала объявляется переменная цикла - j, начальное значение 1.
Цикл выполняется пока (j < arraysize).
При каждой итерации (новом прохождении) j увеличивается на 1.
Вот и вся наука)
Yandex
Объявления
13.10.2013, 18:41     Пузырьковая сортировка
Ответ Создать тему
Опции темы

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