понедельник, 21 декабря 2009 г.

сортировка методом вставки и пузырька

Отсортировать половину массива размером 20 методом вставок, а вторую половину – методом пузырьков.

#include <iostream>
#include <cstdlib>

using namespace std;

const int N = 20;

int main(int argc, char *argv[])
{
    int a[20];

    cout << "старт генератора случайных чисел" << endl;
    srand(time(0));

    cout << "заполняем массив случайными числами" << endl;
    for (int i = 0; i < N; i++) a[i] = rand() % 100;

    cout << "до сортировки" << endl;
    for (int i = 0; i < N; i++) cout << a[i] << " ";
    cout << endl;

    cout << "метод вставки" << endl;
    for (int i = 1; i < N/2; i++)
    {
        int j = i;
        while (a[j] < a[j-1])
        {
            int temp = a[j];
            a[j] = a[j-1];
            a[j-1] = temp;
            j = j - 1;
        }
    }

    cout << "метод пузырька" << endl;
    for (int i = 0; i < N/2; i++)
    {
        for (int j = N/2; j < N - i - 1; j++)
        {
            if (a[j] > a[j+1])
            {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }

    cout << "после после сортировки" << endl;
    for (int i = 0; i < N; i++) cout << a[i] << " ";
    cout << endl;


    return 0;
}

вывод:
старт генератора случайных чисел
заполняем массив случайными числами
до сортировки
42 50 64 17 56 22 70 75 51 97 10 54 92 37 51 58 71 33 31 13 
метод вставки
метод пузырька
после после сортировки
17 22 42 50 51 56 64 70 75 97 10 13 31 33 37 51 54 58 71 92

Комментариев нет:

Отправить комментарий