Пузырьковая сортировка массива в С++
Сортировка - классика жанра. А пузырьковая сортировка, самая известная сортировка и самая медленная. Но студентам она нравится, потому что писать сортировку легко. Идея метода сортировки в обмене местами двух неупорядоченных элементов.
В качестве иллюстрации методов работы с одномерными массивами рассмотрим задачу о сортировке элементов массива. Существует несколько алгоритмов такой сортировки. В данном случае используем метод пузырь ка. Метод состоит в следующем. Каждый элемент массива сравнивается с соседним» и если первый из сравниваемых элементов больше второго, эти элементы меняются местами. После однократного перебора всех элементов самый большой элемент оказывается последним в массиве. Еще раз перебрав элементы массива (последний можно не трогать - он и так самый большой), на предпоследнее место перемещаем второй но величине элемент и так далее. Продолжая эту процедуру необходимое количество раз, добиваемся ситуации, когда элементы массива размещены в порядке возрастания. Данный алгоритм реализован в программе, код которой приведен в листинге.
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 | #include<iostream> using namespace std; int main(){ const int m=10; int MyArray[m]; int i,j,s; cout << "Before:\n" ; // Исходный массив: for (i=0; i < m; i++){ MyArray[i]=rand() % 20; cout << MyArray[i] << " " ;} // Сортировка массива: for (j=1; j <= (m-1); j++) for (i=0; i < m-j; i++) if (MyArray[i] > MyArray[i+1]){ s=MyArray[i+1]; MyArray[i+1]=MyArray[i]; MyArray[i]=s; } cout << "\nAfter:\n" ; // Массив после сортировки: for (i=0; i < m; i++) cout << MyArray[i] << " " ; cout << "\n" ; return 0; } </iostream> |