快速排序,该怎么处理
Jun 13, 2016 am 10:11 AM
快速排序
function quicksort($arr,$lo0,$hi0) {
$lo = $lo0;
$hi = $hi0;
$flag = true;
$tmp = 0;
if($lo>$hi) {
return ;
}
while ($lo!=$hi) {
if($arr[$lo]>$arr[$hi]) {
$tmp = $arr[$lo];
$arr[$lo] = $arr[$hi];
$arr[$hi] = $tmp;
$flag = ($flag==true)?false:true;
}
if($flag) {
$lo++;
}else {
$hi--;
}
}
$lo--;
$hi++;
quicksort($arr,$lo0,$lo);
quicksort($arr,$hi,$hi0);
}
$arr = array(5,4,2,6,8,1,10,9);
quicksort($arr,0,count($arr)-1);
for($i=0;$i
echo "arr[$i]=".$arr[$i]."
";
}
上面红色部分怎么无法判断,郁闷。。
------解决方案--------------------
不是 if($arr[$lo]>$arr[$hi]) { 判断无效
而是交换数组元素的动作没有保存
function quicksort(&$arr,$lo0,$hi0) {
传引用即可
------解决方案--------------------
函数没有返回值,你要这样
function quicksort(&$arr,$lo0,$hi0)// &引用

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penjelasan terperinci tentang peranan dan fungsi jadual MySQL.proc

Apakah tujuan fungsi 'enumerate()' dalam Python?

Cara menggunakan fungsi SOA dalam PHP

Cara menggunakan antara muka Fungsi dalam Java8
