Страница 1 из 1

Быстрая сортировка

Добавлено: 15 сен 2009, 21:19
prikolist
Дошёл до темы быстрой сортировки, набрал код, начал компилировать. Что странно, всё написано правильно, уже проверял, 8 раз, программа компилируется, но результат отсортированного массива не выдаёт, выдаёт только исходный результат.

Код: Выделить всё

#include <iostream>
using namespace std;

void quicksort(char *items, int len);
void qs(char *items, int left, int right);

int main()
{
    setlocale(0,"");
    char str[] = "вгдба";
    cout<<"Масив в исходном порядке: "<<str<<endl;
    quicksort(str,strlen(str));
    cout<<"Отсортированный масив: "<<str<<endl;
cin.get();
}


void quicksort(char *items, int len)
{
    qs(items,0, len - 1);
}

void qs(char *items, int left, int right)
{
    int i,j;
    char x,y;
    i = left;    j = right;
    x = items[(left+right)/2];
    do {
        while((items[i] < x) && (i < right)); i++;
        while((x < items[j]) && (j > left)); j--;
    if(i<=j)
        {
            y = items[i];
            items[i] = items[j];
            items[j] = y;
            i++; j--;
        }
    } while(i <= j);

if(left < j) qs(items,left,j);
if(i < right) qs(items,i,right);
}




Re: Быстрая сортировка

Добавлено: 16 сен 2009, 11:33
Airhand
У тебя циклы while - пустые. Так и должно быть ? Потом, после кождого цикла, идёт одно действие. Разберись тут.

Re: Быстрая сортировка

Добавлено: 16 сен 2009, 12:55
Romeo
&quot писал(а):Что странно, всё написано правильно, уже проверял, 8 раз, программа компилируется
8 раз проверял, что программа компилируется или что программа работает? Проверяют программы с помощью отладки, а не путём восьмикратной рекомпиляции :)

Re: Быстрая сортировка

Добавлено: 16 сен 2009, 23:19
Newbie
...

гляди аттачь(переименуй разрешение на rar), там найдешь нужный метод (там несколько типов сортировок)

"Что странно, всё написано правильно, .... выдаёт только исходный результат. "

афтар сам себе противоречит....