Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Сортировка вставками. Подсчет перестановок.


Автор: tarasrng 26.3.2012, 20:13
Есть фукция, которая сортирует массив целых чисел (сортировка методом вставок)
Код

void insertSort(int* &a, int size, String &out, int &compare, int &swap)
{
compare=0; //количество сравнений
swap=0;   //количество перестановок
    int tmp;
    for (int i = 1, j; i < size; ++i) // цикл проходов, i - номер прохода
    {
        tmp = a[i];

            for (j = i - 1; j >= 0 && a[j] > tmp; --j) // поиск места элемента в готовой последовательности
            {
            compare++;
            a[j + 1] = a[j];    // сдвигаем элемент направо, пока не дошли
            }

        a[j + 1] =tmp; // место найдено, вставить элемент
        swap++;
        for (int o=0;o<size;o++)
                out=out+a[o]+' ';
            out=out+"\r\n";
    }
}

С сортированием все ок, а число перестановок и сравнений выводит неправильно. подскажите, что не та пожалуйста

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)