Сортировка пузырьком
ОГЛАВЛЕНИЕ
Самая простая сортировка (так называемый "пузырек"). Отсортируем с ее помощью массив:
17 9 6 14 19 5
Проходим от первого элемента до последнего и сравниваем соседние элементы. Если слева больше, то меняем их местами (таким образом, справа всегда будет больший). После такого преобразования будет такое :
9 6 14 17 5 | 19 - 19 уже отсортировано, теперь можно проходить не до конца, а на один элемент меньше.
После второй операции :
6 9 14 5 | 17 19 - Потом :
6 9 5 | 14 17 19
6 5 | 9 14 17 19
5 | 6 9 14 17 19
Вот и все. Исходный код сортировки приведен ниже.
#include <iostream>
using namespace std;
// наш массив
int array[100];
// сортировка
void Sort(int col)
{
// временная переменная для хранения промежуточного результата
int trash=0;
// пока не равно количеству елементов
for (int i=1; i<=col ; i++)
{
// пока не равно col-i
for (int j=1; j<=col-i; j++)
{
// если левый элемент больше
if (array [j]>array [j+1])
{
// правого, то меняем их местами
trash=array[j];
array [j]=array [j+1];
array [j+1]=trash;
}
}
}
}
// вывод на экран нашего массива после сортировки
void Out(int col)
{
for (int i=1; i<=col; i++)
cout << array [i] <<" ";
cout << endl;
}
int main()
{
int col_el;
cout << " Enter length of array"<< endl;
// считываем количество элементов
cin >> col_el;
// считываем элементы массива
for (int n=1; n<=col_el ; n++)
cin >> array[n];
Sort(col_el);
// сортируем их
cout << "Result is :"<<endl;
// и выводим
Out(col_el);
// ждем нажатия клавиши
cin >> col_el;
return 0;
}
Данная программа не доделана до конца, в частности нет проверки на выход за пределы массива и прочее. Заводим массив на 200 элементов, затем считываем количество элементов вызываем процедуру сортировки.