☰
✕
Главная
© 2002 - 2025
Diary.ru
Close the sidebar
С++,PHP.
programming
| четверг, 30 июня 2011
Ad
Здравствуйте , не совсем понимаю почему не работает следующий кусок кода
( на С этот алгоритм работает верно , на PHP почему-то нет) .
на С
void swap( int &i , int &j) { int temp = i ; i = j; j = temp ; } void quick_sort(int * ar,int left,int right) { int i , j ; i = left ; j = right ; int m = (i + j)/2 ; while ( ( (i <= m) && (j >= m) ) && ( (i != m) || (j != m) ) ) { i += (( ar[i] <= ar[m] ) && ( i != m ) ) ? 1:0 ; j -= (( ar[j] >= ar[m] ) && ( j != m ) ) ? 1:0 ; if ( ( ar[i] >= ar[m] ) && ( ar[j] <= ar[m] ) && ( ar[i] != ar[j] ) && ((i != m) || (j != m))) { swap(ar[i],ar[j] ) ; if ( ( i != m ) && ( j != m) ) { i++ ; j-- ; } else if ( i == m ) { m = j ; i++ ;} else { m = i ; j-- ; } } } if ((right - left ) > 1) { if ( m != left ) quick_sort( ar , left , m-1 ); if ( m != right ) quick_sort( ar , m+1, right ); } }
на PHP
function swap(&$i,&$j) { $temp = $i ; $i = $j; $j = $temp ; } function quick_sort(&$ar,$left,$right) // быстрая сортировка { $i = $left ; $j = $right ; $m = ($i + $j)/2 ; while ( ( ($i <= $m) && ($j >= $m) ) && ( ($i != $m) || ($j != $m) ) ) { $i += (( $ar[$i] <= $ar[$m] ) && ( $i != $m ) ) ? 1:0 ; $j -= (( $ar[$j] >= $ar[$m] ) && ( $j != $m ) ) ? 1:0 ; if ( ( $ar[$i] >= $ar[$m] ) && ( $ar[$j] <= $ar[$m] ) && ( $ar[$i] != $ar[$j] ) && (($i != $m) || ($j != $m))) { swap($ar[$i],$ar[$j] ) ; if ( ( $i != $m ) && ( $j != $m) ) { $i++ ; $j-- ; } else if ( $i == $m ) { $m = $j ; $i++ ;} else { $m = $i ; $j-- ;} } } if (($right - $left ) > 1) { if ( $m != $left ) quick_sort( $ar , $left , $m-1 ); if ( $m != $right ) quick_sort( $ar , $m+1, $right ); } }
Заранее спасибо.
PHP
C++
Смотрите также
Мне 37 и я
Жизнь и сны
Внеплановое пополнение закромов
Какая дивная песня)
БГ 2025
Книги 2025