WEB DEVELOPER - THIẾT KẾ VÀ PHÁT TRIỂN WEBSITE - Trang 134

Phát triển Web

2012

132

www.izwebz.com Demon Warlock

Output:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Giải thích đoạn code trên

Đánh số key cho mảng ở trên (chú ý hen, trong C thì các chỉ số là index nhưng trong PHP lại là
key).

9 -> a[0]; 8 -> a[1]; 7-> a[2]; 6->a[3]; 5->a[4]; 4->a[5]; 3->a[6]; 2->a[7]; 1->a[8]; 0->a[9];

Ở vòng for đầu tiên với $i=0 sẽ thực hiện vòng lặp for thứ hai từ vị trí thứ 9 xuống vị trí thứ 0
của mảng trên, và bắt đầu so sánh nếu số trước lớn hơn số sau thì hoán vị hai số đó. Ví dụ giá trị
của a[9] =0 và a[8] =1; rõ ràng a[8] =1 (số trước) > a[9]=0 (số sau). Thỏa mãn điều kiện if ở trên
nên thực hiện hoán vị hai số này và tiếp tục so sánh như vậy cho tới j=1; như vậy sau giá trị $i=0
và chạy vòng for thứ hai thì phần tử 0 tức là giái trị của a[9] sẽ được đẩy lên đầu. (phần tử nhẹ
nhất nổi lên đầu.).Như vậy có thể hiểu ngay sau khi tăng $i lên một thì giá trị =1 trong mảng $a
sẽ đứng kế sau giá trị 0 trong mảng $a.

/*
Author: NguyenKien.
Description: code for Selection Sort.
Date: 4/10/2010.
*/
<?php

$b = array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);

$i=0;

$j=0;

$temp =0;

$min =0;

for ($i=0; $i&lt;count($b); $i++) {

$min =$i;

for ($j=$i+1; $j &lt;count($b); $j++) {

if ($b[$j] &lt; $b[$min])

{

$min =$j;

$temp =$b[$i];

$b[$i] = $b[$min];

$b[$min] =$temp;

}

}
}
foreach ($b as $value)
echo $value.&quot; ,&quot;;

?>