PHP实现的常见排序算法汇总
本文主要介绍几种PHP实现常见排序算法的方法,帮助读者快速了解和使用这些排序算法。
排序算法是计算机编程领域中非常重要的基础算法之一,可以用于对数据进行排序,常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序等,本文将介绍其中的三种算法。
- 冒泡排序
冒泡排序是一种简单直观的排序算法,通过比较相邻元素的大小,将较大的元素逐个“冒泡”到数组的末尾。具体实现方法如下:
function bubbleSort($arr) {
$len = count($arr);
for ($i = 0; $i < $len - 1; $i++) {
for ($j = 0; $j < $len - 1 - $i; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;
}
}
}
return $arr;
}
以上是一个基本的冒泡排序算法实现,时间复杂度为O(n^2)。
示例:
$arr = array(3,1,5,7,2,4,9,6,10,8);
$result = bubbleSort($arr);
print_r($result);
结果:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
)
- 选择排序
选择排序的基本思想是,每次选取最小的元素放在数组的最前面,然后在剩下的元素中再重复这个过程。具体实现方法如下:
function selectSort($arr) {
$len = count($arr);
for ($i = 0; $i < $len - 1; $i++) {
$min = $i; //记录最小元素的下标
for ($j = $i + 1; $j < $len; $j++) {
if ($arr[$j] < $arr[$min]) {
$min = $j;
}
}
if ($min != $i) {
$temp = $arr[$i];
$arr[$i] = $arr[$min];
$arr[$min] = $temp;
}
}
return $arr;
}
以上是一个基本的选择排序算法实现,时间复杂度为O(n^2)。
示例:
$arr = array(3,1,5,7,2,4,9,6,10,8);
$result = selectSort($arr);
print_r($result);
结果:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
)
- 插入排序
插入排序的基本思想是,将一个未排序的元素插入已排序序列中的适当位置,从而得到一个新的序列。具体实现方法如下:
function insertSort($arr) {
$len=count($arr);
for($i=1;$i<$len;++$i){
$temp=$arr[$i];
for($j=$i;$j>0;--$j){
if($arr[$j-1]>$temp){
$arr[$j]=$arr[$j-1];
}else{
break;
}
}
$arr[$j]=$temp;
}
return $arr;
}
以上是一个基本的插入排序算法实现,时间复杂度为O(n^2)。
示例:
$arr = array(3,1,5,7,2,4,9,6,10,8);
$result = insertSort($arr);
print_r($result);
结果:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
)
总结
本文介绍了冒泡排序、选择排序和插入排序的基本思想和实现方法,并通过示例给出了具体应用。这些排序算法都是比较基础的算法,但是在实际开发过程中非常实用,希望读者在学习本文后能够掌握使用这些排序算法的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现的常见排序算法汇总 - Python技术站