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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ статические поля класса http://www.cyberforum.ru/cpp-beginners/thread976223.html
Попробовал следующий пример из книги: #include<iostream> #include <conio.h> using namespace std; class MyClass { public: static int counter; MyClass() {
C++ Ввести и вывести матрицу (for, while, do while) 2. Обработать массив по условию Нужно сделать программу в С++ 1. Ввести и вывести матрицу (for, while, do while) 2. Обработать массив по условию: Найти индекс последнего из ее столбцов, который содержит равное количество положительных и отрицательных элементов, если такого столбца нет вывести -1; Если в столбце одинаковое количество положительных и отрицательных элементов, обнулить элементы такого столбца Заранее... http://www.cyberforum.ru/cpp-beginners/thread976201.html
Вычислить значение функции C++
Ребята подскажите пожалуйста похожие задачи,что б написать программу хотя бы по готовому шаблону..Буду очень благодарен.
дано n>0. используя один цикл do-while найти сумму 1!+2!+.+n! C++
дано n>0. используя один цикл do-while найти сумму 1!+2!+...+n!
C++ Максимальная длина последовательности,числа которой уменьшаются http://www.cyberforum.ru/cpp-beginners/thread976188.html
Здравствуйте. Помогите написать программу, которая будет считать максимальную длину последовательности, числа которой уменьшаются. Есть вариант, который считает макс. длину последовательности, числа которой увеличиваются. Код: void random() { qsrand(time(NULL) | clock()); uint n; cout << "Enter max choosing: "; cin >> n; for (int i=0; i<10; i++) { uint maxLen...
C++ По заданной символьной последовательности длины N создать массив такой точно длины с элементами Bi типа BOOLEAN Помогите решить задание. По заданной символьной последовательности длины N создать массив такой точно длины с элементами Bi типа BOOLEAN: Bi = { (true, Ai ≥ 127 , false, Ai <127) Примечание: Показать отформатированный фрагмент текста с выравниванием по ширине / по центру, правой и левой стороне. Обеспечить задания отступов от левой или правой границ. Насколько я понимаю, это нужно... подробнее

Показать сообщение отдельно
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 14:36     Пузырьковая сортировка
Здравствуйте .Объясните , пожалуйста , подробно , как работает пузырьковая сортировка .
Получается сравниваются два соседних элемента и если элемент с меньшим индексом больше другого элемента , то они переставляются местами . Я немного запутался с циклами .
Нашёл такой пример:
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++)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru