- Chuyên mục khác :
- PHP cơ bản và nâng cao
- ·
- Bài tập PHP
- ·
- Javascript cơ bản và nâng cao
- ·
- HTTP cơ bản và nâng cao
- Bài tập PHP có giải
- 100 Bài tập PHP có giải hay nhất
- Bài tập PHP cơ bản
- Bài tập mảng trong PHP
- Bài tập vòng lặp for trong PHP (Phần 1)
- Bài tập hàm trong PHP
- Bài tập Regular Expression trong PHP
- Bài tập Date Time trong PHP
- Bài tập String trong PHP
- Bài tập về Class (Lớp) trong PHP
- Xử lý JSON trong PHP
- Các giải thuật sắp xếp trong PHP
- Tài liệu tham khảo PHP
Bài tập Sử dụng giải thuật sắp xếp trộn (Merge Sort) để sắp xếp các phần tử.
Bạn cũng có thể tìm hiểu về thuật toán này trong bài: Giải thuật sắp xếp trộn (Merge Sort)
PHP script
Dưới đây là phần PHP code để giải bài tập PHP trên:
<html> <head> <title>Giải thuật sắp xếp trộn (Merge Sort) trong PHP</title> </head> <body> <?php function merge_sort($my_array){ if(count($my_array) == 1 ) return $my_array; $mid = count($my_array) / 2; $left = array_slice($my_array, 0, $mid); $right = array_slice($my_array, $mid); $left = merge_sort($left); $right = merge_sort($right); return merge($left, $right); } function merge($left, $right){ $res = array(); while (count($left) > 0 && count($right) > 0){ if($left[0] > $right[0]){ $res[] = $right[0]; $right = array_slice($right , 1); }else{ $res[] = $left[0]; $left = array_slice($left, 1); } } while (count($left) > 0){ $res[] = $left[0]; $left = array_slice($left, 1); } while (count($right) > 0){ $res[] = $right[0]; $right = array_slice($right, 1); } return $res; } $test_array = array(100, 54, 7, 2, 5, 4, 1); echo "Mảng ban đầu:<br>"; echo implode(', ',$test_array ); echo "<br>Mảng đã qua sắp xếp:<br>"; echo implode(', ',merge_sort($test_array))."<br>"; ?> </body> </html>
Kết quả
Lưu PHP code trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Các giải thuật sắp xếp trong PHP khác có trên s2sontech:
Bình luận (0)