Подскажите алгоритм сортировки рекурсивным (!) методом или где про сортировки можно почитать?
А алгоритм называется quicksort. Как работает - забыл
В Гугле просто в поисковике quicksort набрать?
http://program.rin.ru/razdel/html/765.html
Караидель Спасибо.
array масив каторый надо отсортировать
left =0
right число элементов -1
*/
void Sort(DWORD *array, int left, int right)
{
DWORD i, j, comp, temp;
i = left; j = right;
comp = array[(left + right) / 2];
do {
while (array[i] < comp && i < right) i++;
while (array[j] > comp && j > left) j--;
if (i <= j) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
i++; j--;
}
} while (i <= j);
if (left < j) Sort(array, left, j);
if (i < right) Sort(array, i, right);
}
А вот кому на яве?
void QuickSort(int a[], int lo0, int hi0) throws Exception
{
int T;
int lo = lo0;
int hi = hi0;
int mid;
if ( hi0 > lo0)
{
mid = a[ ( lo0 + hi0 ) / 2 ];
while( lo <= hi )
{
while( ( lo < hi0 ) && ( a[lo] < mid ))
++lo;
while( ( hi > lo0 ) && ( a[hi] > mid ))
--hi;
if( lo <= hi )
{
T = a[lo];
a[lo] = a[hi];
a[hi] = T;
++lo;
--hi;
}
}
if( lo0 < hi )
QuickSort( a, lo0, hi );
if( lo < hi0 )
QuickSort( a, lo, hi0 );
}
}
Я как раз Яву учу (мне для этого нужно было)