<?php
$A = array(20,15,31,62,11,10,3,44,23,100);
print "Befor <BR>";
print "Array A = ";
print_r($A);
function ShellSort($arr)
{
$gap = round(count($arr)/2);
while($gap > 0)
{
for($i = $gap; $i < count($arr);$i++){
$temp = $arr[$i];
$j = $i;
while($j >= $gap && $arr[$j-$gap] > $temp)
{
$arr[$j] = $arr[$j - $gap];
$j -= $gap;
}
$arr[$j] = $temp;
}
$gap = round($gap/2.2);
}
return $arr;
}
ShellSort($A);
print "<BR><BR> After <BR>";
print "Array A = ";
print_r ($A);
?>
โค้ดประมาณนี้ค่ะ แต่เวลาเรียกใช้ฟังก์ชั่นจะได้ค่าเดิมไม่มีการเรียงลำดับเลย ต้องแก้ไขตรงไหนคะ
ขอบคุณล่วงหน้านะคะ ^^
shell sort อยากทราบว่า ถ้าเราเขียนฟังก์ชั่น จะเรียกใช้ฟังก์ชั่นยังไงคะ
$A = array(20,15,31,62,11,10,3,44,23,100);
print "Befor <BR>";
print "Array A = ";
print_r($A);
function ShellSort($arr)
{
$gap = round(count($arr)/2);
while($gap > 0)
{
for($i = $gap; $i < count($arr);$i++){
$temp = $arr[$i];
$j = $i;
while($j >= $gap && $arr[$j-$gap] > $temp)
{
$arr[$j] = $arr[$j - $gap];
$j -= $gap;
}
$arr[$j] = $temp;
}
$gap = round($gap/2.2);
}
return $arr;
}
ShellSort($A);
print "<BR><BR> After <BR>";
print "Array A = ";
print_r ($A);
?>
โค้ดประมาณนี้ค่ะ แต่เวลาเรียกใช้ฟังก์ชั่นจะได้ค่าเดิมไม่มีการเรียงลำดับเลย ต้องแก้ไขตรงไหนคะ
ขอบคุณล่วงหน้านะคะ ^^