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

Метод сортировки Bubble с контролем упорядоченности - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Стек как линейный список, вывести на печать два последних элемента http://www.cyberforum.ru/cpp-beginners/thread901520.html
Здравствуйте, нужна программа - стек как линейный список, вывести на печать два последних элемента. Получилось только чтобы выводилось два первых. Заранее спасибо) #include <stdio.h> #include <locale.h> #include <Windows.h> //структура для описания списка struct Node { char data; //данные Node *next; //указатель на следующий элемент
C++ Массив. Определите сумму всех чисел Данный двумерный массив. Определите сумму всех чисел. http://www.cyberforum.ru/cpp-beginners/thread901516.html
Работа с матрицами. Найти минимальный среди максимальных элементов ее столбцов C++
Дана матрица размерности M на N. Найти минимальный среди максимальных элементов ее столбцов.
С паскаля в С++ C++
{task array6} const maxSize=100; type Tarr=array of integer; var m:Tarr; i,n,a,b:integer; begin repeat
C++ Циклы. Вычислить сумму http://www.cyberforum.ru/cpp-beginners/thread901507.html
C++ Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали Данная целочисленных квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 15:44     Метод сортировки Bubble с контролем упорядоченности
с контролем упорядоченности означает, что надо сортировать не тупо с n-1 прохождениями по массиву, а до тех пор, пока не останется инверсий.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void BubbleSort(int *a, const int n)
{
   int i, left = 0, flag, buf;
   do
   {
      flag = 0;
      for(i = n - 1; i > left; i--)
         if (a[i-1] > a[i])
         {
            buf = a[i]; a[i] = a[i-1]; a[i-1] = buf;
            flag = 1;
         }
      left++;
   }
   while(flag);
}
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru