?
korrigierte version falls doch mal jemand auf das gleiche Problem trifft
cheers
#include <stdio.h>
#include <string.h>
#include <time.h>
int partition(int* array, int begin, int end)
{
int x = array[begin]; /*Pivot*/
int i=begin-1;
int j=end+1;
int tmp;
while(1)
{
while(array[++i]<x && i<=end);
while(array[--j]>x && j>=0);
if(i>=j) break;
if(array[i]>array[j])
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
for(; begin < end; begin++)
{
printf("%2d", array[begin]);
}
printf("\n");
}
return j;
}
void quicksort(int* array, int begin, int end)
{
int q;
if(begin<end)
{
q = partition(array, begin, end);
quicksort(array, begin, q);
quicksort(array, q+1, end);
}
}
int main(void)
{
int inserts=6;
int values[6] = { 5 , 3 , 2 , 6 , 1 , 7};
int i;
for(i=0; i<inserts; i++)
{
printf("%2d ", values[i]);
}
printf("\nZum sortieren Taste druecken!");
if(getchar())
{
quicksort(values, 0, inserts-1);
}
printf("\n");
for(i=0; i<inserts; i++)
{
printf("%2d ", values[i]);
}
return 0;
}