4713


#include <stdio.h>

#include <conio.h>

void SortQuick(int *a, int sFrom, int sTo);

// Quicksort done recursively.

main()

{

int i, array[5];

array[0] = 24;

array[1] = -30;

array[2] = 1;

array[3] = -33;

array[4] = 82;

printf ("%s", "Sorting...\n\n");

printf ("%s", " i \t array(i)\n");

printf ("%s", "---\t --------\n");

for (i = 0; i < 5; i++)

{

printf ("%d \t %d\n", i, array[i]);

}

SortQuick(array, 0, 4);

printf ("%s", "Sorting...\n");

printf ("%s", " i \t array(i)\n");

printf ("%s", "---\t --------\n");

for (i = 0; i < 5; i++)

{

printf ("%d \t %d\n", i, array[i]);

}

getche();

return(0);

}

void SortQuick(int *a, int sFrom, int sTo)

{

int i, j, atRandom, temp, test;

if (sFrom >= sTo)

return;

if (sFrom + 1 == sTo)

{

if (a[sFrom] > a[sTo])

{

temp = a[sFrom];

a[sFrom] = a[sTo];

a[sTo] = temp;

}

return;

}

else

{

atRandom = (sFrom + sTo) / 2;

test = a[atRandom];

temp = a[atRandom];

a[atRandom] = a[sTo];

a[sTo] = temp;

do

{

for(i = sFrom; i < sTo - 1; i++)

{

if (a[i] > test)

break;

}

for(j = sTo; j > i + 1; j--)

{

if (a[j] < test)

break;

}

if (i < j)

{

temp = a[j];

a[j] = a[i];

a[i] = temp;

}

} while (i < j-1);

temp = a[sTo];

a[sTo] = a[i];

a[i] = temp;

SortQuick(a, sFrom, i - 1);

SortQuick(a, i + 1, sTo);

}

}



Wyszukiwarka

Podobne podstrony:
praca licencjacka b7 4713
4713
4713
4713
4713
03b ZUS, KONTO PŁATNIKA I INDYWIDUALNE KONTO UBEZPIECZONEGOid 4713 pptx

więcej podobnych podstron