void Hashing_sort( T a[], const int n )
{
int first = 0;
int last = n;
while( last > first )
{
for( int i=first; i<last-1; i++ )
if( a[i] > a[i+1] )
{
swap(a[i], a[i+1]);
/*
T tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
*/
}
--last;
for( int i=last-1; i>first; i-- )
if( a[i] < a[i-1] )
{
swap(a[i], a[i-1]);
/*
T tmp = a[i];
a[i] = a[i-1];
a[i-1] = tmp;
*/
}
first++;
}
}
спасибо, вроде работаетАвтор оригинала: HraKK
Добавь $ перед переменными))
ну да, оно ))Автор оригинала: HraKK
это оно и есть)
я уж лет пять как отучилась, и пены у своего рта не наблюдаюАвтор оригинала: zerkms
а если ходить на пары - то не придётся бегать по интернетам с пеной у рта и попрошайничать скрипты.
я недостаточно хорошо знаю Си, а примеров реализации на php что то не могу найтиАвтор оригинала: HraKK
гугл молчит?)
int partition (mytype * m, int a, int b)
{
int i = a;
for (int j = a; j <= b; j++) // просматриваем с a по b
{
if (m[j] <= m[b]) // если элемент m[j] не превосходит m[b],
{
swap(m[i], m[j]); // меняем местами m[j] и m[a], m[a+1], m[a+2] и так далее...
// то есть переносим элементы меньшие m[b] в начало,
// а затем и сам m[b] «сверху»
i++; // таким образом последний обмен: m[b] и m[i], после чего i++
}
}
return i-1; // в индексе i хранится <новая позиция элемента m[b]> + 1
}
void quicksort (mytype * m, int a, int b) // a - начало подмножества, b - конец
{ // для первого вызова: a = 0, b = <элементов в массиве> - 1
if (a >= b) return;
int c = partition (m, a, b);
quicksort (m, a, c-1);
quicksort (m, c+1, b);
}
function partition ($arr, $a, $b)
{
$i = $a;
for ($j = $a; $j <= $b; $j++) // просматриваем с a по b
{
if ($arr[$j] <= $arr[$b]) // если элемент m[j] не превосходит m[b],
{
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $arr[$i];
$i++; // таким образом последний обмен: m[b] и m[i], после чего i++
}
}
return $i-1; // в индексе i хранится <новая позиция элемента m[b]> + 1
}
function quick_sort($arr, $a, $b)
{
if ($a >= $b) return $arr;
$c = partition ($arr, $a, $b);
quick_sort ($arr, $a, $c-1);
quick_sort ($arr, $c+1, $b);
return $arr;
}
гениально.$arr[$i] = $arr[$j];
$arr[$j] = $arr[$i];
это я поправлюАвтор оригинала: HraKK
гениально.
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
все, разобралась, заработало. забыла передать ссылку во вторую функциюАвтор оригинала: phprus
yana
Подсказываю: Либо массивы надо передавать по ссылкам, либо не терять возвращаемые значения.