phpバブルソート原理
2485 ワード
$start = microtime(true);
$popArr = array(6,3,23,1,5,100,399,99,66);
echo '6,3,23,1,5,100,399,99,66';
$len = count($popArr);
for ($j=0; $j
{
for ($i=$len-1; $i>$j; $i--)
{
if ($popArr[$i] < $popArr[$i-1])
{
$x = $popArr[$i];
$popArr[$i] = $popArr[$i-1];
$popArr[$i-1] = $x;
}
}
}
/*
j=0 i=8 99と66はarray(6,3,23,1,5100399,66,99)を交換した.
i=7 399と66はarray(6,3,23,1,5100,66399,99)を交換した.
i=6 100と66はarray(6,3,23,1,5,66100399,99)を交換した.
i=5変化なし
i=4変化なし
i=3 23と1はarray(6,3,1,23,5,66100399,99)を交換した.
i=23と1はarray(6,1,3,23,5,66100399,99)を交換した.
i=1 6と1はarray(1,6,3,23,5,66100399,99)を交換した.
j=1 i=8 399と99はarray(1,6,3,23,5,66100,99399)を交換した.
i=7 100と99はarray(1,6,3,23,5,66,99100399)を交換した.
i=6は変化しなかったarray(1,6,3,23,5,66,99100399);
i=5は変化しなかったarray(1,6,3,23,5,66,99100399);
i=4 23と5はarray(1,6,3,5,23,66,99100399)を交換した.
i=3変化なしarray(1,6,3,5,23,66,99100399);
i=26と3はarray(1,3,6,5,23,66,99100399)を交換した.
j=2 i=8はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=7はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=6はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=5変化なしarray(1,3,6,5,23,66,99100399);
i=4はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=3 6と5はarray(1,3,5,6,23,66,99100399)を交換した.
j=3 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=6はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=5はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=4はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=4 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=6はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=5はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=5 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=6はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=6 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=7 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
*/
echo '
$popArr = array(6,3,23,1,5,100,399,99,66);
echo '6,3,23,1,5,100,399,99,66';
$len = count($popArr);
for ($j=0; $j
{
for ($i=$len-1; $i>$j; $i--)
{
if ($popArr[$i] < $popArr[$i-1])
{
$x = $popArr[$i];
$popArr[$i] = $popArr[$i-1];
$popArr[$i-1] = $x;
}
}
}
/*
j=0 i=8 99と66はarray(6,3,23,1,5100399,66,99)を交換した.
i=7 399と66はarray(6,3,23,1,5100,66399,99)を交換した.
i=6 100と66はarray(6,3,23,1,5,66100399,99)を交換した.
i=5変化なし
i=4変化なし
i=3 23と1はarray(6,3,1,23,5,66100399,99)を交換した.
i=23と1はarray(6,1,3,23,5,66100399,99)を交換した.
i=1 6と1はarray(1,6,3,23,5,66100399,99)を交換した.
j=1 i=8 399と99はarray(1,6,3,23,5,66100,99399)を交換した.
i=7 100と99はarray(1,6,3,23,5,66,99100399)を交換した.
i=6は変化しなかったarray(1,6,3,23,5,66,99100399);
i=5は変化しなかったarray(1,6,3,23,5,66,99100399);
i=4 23と5はarray(1,6,3,5,23,66,99100399)を交換した.
i=3変化なしarray(1,6,3,5,23,66,99100399);
i=26と3はarray(1,3,6,5,23,66,99100399)を交換した.
j=2 i=8はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=7はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=6はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=5変化なしarray(1,3,6,5,23,66,99100399);
i=4はarray(1,3,6,5,23,66,99100399)に変化しなかった.
i=3 6と5はarray(1,3,5,6,23,66,99100399)を交換した.
j=3 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=6はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=5はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=4はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=4 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=6はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=5はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=5 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=6はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=6 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
i=7はarray(1,3,5,6,23,66,99100399)に変化しなかった.
j=7 i=8はarray(1,3,5,6,23,66,99100399)に変化しなかった.
*/
echo '
';
print_r($popArr);
echo microtime(true) - $start;
die;