Страница 1 из 2
Самая простая сортировка (так называемый "пузырек"). Отсортируем с ее помощью массив: 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 элементов, затем считываем количество элементов вызываем процедуру сортировки.
|