一、常用排序算法
常见的排序算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序等。
冒泡排序:
基本思想是每次比较相邻的两个元素,如果前者比后者大,则将它们交换位置,最终使得从左到右的每个元素都是当前序列中最小的。
选择排序:
基本思想是每次从未排序的数中选取最小的数,并将其放到已排序序列的末尾。
插入排序:
基本思想是从无序序列中取出一个元素,插入到已排序序列的正确位置,使得已排序的序列仍然有序。
快速排序:
基本思想是通过一次快速排序,将整个序列划分成左、右两个子序列,递归地对左、右两个子序列进行快速排序,最终使得整个序列有序。
二、PHP实现常用排序算法的方法
- 冒泡排序的PHP实现:
function bubble_sort($arr) {
$count = count($arr);
for ($i = 0; $i < $count - 1; $i++) {
for ($j = 0; $j < $count - 1 - $i; $j++) {
if ($arr[$j] > $arr[$j+1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
- 快速排序的PHP实现:
function quick_sort($arr) {
$count = count($arr);
if ($count <= 1) {
return $arr;
}
$pivot = $arr[0];
$left_arr = array();
$right_arr = array();
for ($i = 1; $i < $count; $i++) {
if ($arr[$i] <= $pivot) {
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
return array_merge(quick_sort($left_arr), array($pivot), quick_sort($right_arr));
}
以上两段代码分别实现了冒泡排序和快速排序的PHP代码。
三、示例说明
示例1:冒泡排序
我们准备一个待排序的数组:
$arr = array(3, 2, 5, 4, 1);
将这个数组用冒泡排序进行排序:
$result = bubble_sort($arr);
print_r($result);
输出结果为:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
示例2:快速排序
我们准备一个待排序的数组:
$arr = array(26, 5, 77, 1, 61, 11, 59, 15, 48, 19);
将这个数组用快速排序进行排序:
$result = quick_sort($arr);
print_r($result);
输出结果为:
Array
(
[0] => 1
[1] => 5
[2] => 11
[3] => 15
[4] => 19
[5] => 26
[6] => 48
[7] => 59
[8] => 61
[9] => 77
)
以上两个示例分别展示了冒泡排序和快速排序的PHP实现,并且通过调用函数得到了排序结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现常用排序算法的方法 - Python技术站