Подскажите алгоритм сортировки рекурсивным (!) методом или где про сортировки можно почитать?
-
-
02.02.2005 в 18:05А алгоритм называется quicksort. Как работает - забыл
-
-
02.02.2005 в 18:36В Гугле просто в поисковике quicksort набрать?
-
-
02.02.2005 в 18:40-
-
02.02.2005 в 18:41-
-
02.02.2005 в 18:46-
-
02.02.2005 в 23:51http://program.rin.ru/razdel/html/765.html
-
-
03.02.2005 в 00:25Караидель Спасибо.
-
-
03.02.2005 в 01:55array масив каторый надо отсортировать
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);
}
-
-
03.02.2005 в 02:01А вот кому на яве?
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 );
}
}
-
-
03.02.2005 в 02:08-
-
03.02.2005 в 02:09-
-
03.02.2005 в 02:12-
-
04.02.2005 в 01:09Я как раз Яву учу (мне для этого нужно было)