Code前端首页关于Code前端联系我们

PHP的四种基本算法:冒泡、选择、插入和快速排序

terry 2年前 (2023-09-27) 阅读数 83 #数据结构与算法
算法是程序的核心。一个程序好坏的关键在于程序的算法。虽然作为一名初级PHPer我对算法的经验很少,但我认为我还是需要掌握冒泡排序、插入排序、选择排序、快速排序四种基本算法。下面根据我个人的理解,对这四种方法进行分析。 PHP四种基础算法:冒泡、选择、插入和快速排序法 要求:使用冒泡排序、快速排序、选择排序、插入排序对下面数组中的值按升序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39);

1。冒泡排序法

* 思路分析:该方法顾名思义,就是像冒泡排序一样,每次都从数组中取出最大的数。
* 例如:2,4,1 // 第一个铃声是 4
* 2,1,4 // 第二个铃声是 2
* 1,2, 4 // 最终结果如下这个

$arr=数组(1,43,54,62,21,66,32,78,36,76,39);
函数getpao($arr)
{
$len = count($arr);
//设置一个空数组,用来接收出现的气泡
//这一层循环决定了需要的气泡轮数
for ($i=1;$i { //该循环级别用于确定每轮比较某个数字的次数
for($k=0;$k {
if($arr[$k]>$arr[$k+1])
{
$tmp=$arr[$k+ 1];
$arr [$k+1]=$arr[$k];
$arr[$k]=$tmp;
}
}
}
返回 $arr;
}

2.选择排序方法:

选择排序方法思路:每次选择一个对应的元素,然后将其放置到指定位置

function select_sort($arr) {
//思想的双循环完成,外层决定轮数,当前最小值。内控中比较的次数
//$i 当前最小值的位置,要比较的元素
for($i=0, $len=count($arr); $i //首先假设最小值的位置
$p = $i;
//当前$j应该与哪些元素进行比较,这些元素在$之后我。
for($j=$i+1; $j $arr[$j]) {
//比较,找到较小的值,记下最小值的位置;在下面的等式中
// 应使用已知的最小值进行比较。
$p = $j;
}
}
//确定当前最小值位置并存储在$p中。
//如果发现最小值的位置与当前假设的位置$i不同,则可以交换位置
if($p != $i) {
$tmp = $arr[$ p ];
$arr[$p] = $arr[$i];
$arr[$i] = $tmp;
}
}
//返回最终结果
return $arr;
}

3、插入排序方法

插入排序方法思路:将要排序的元素插入到数组中放置排序号的指定位置基于。

function insert_sort($arr) {
//区分哪部分已排序
//哪部分未排序
//查找其中一个要排序的元素
// 该元素从第二个元素开始,到最后一个要排序的元素结束
//可以使用循环高亮
//i-loop控制每次插入的元素。一旦需要插入的元素就受控了,
//间接将数组分成2部分。下标比当前的小(左),这给出了排序数组
for($i=1, $len=count ($arr); $i=0;$j--) {
//$arr[$i];//要插入的元素; $arr[$j];//要比较的元素
if($tmp $arr [$ j] = $tmp;
} else {
//如果遇到不需要移动的元素
//因为如果是已排序的数组,前面的就不需要再次进行比较。
break;
}
}
}
//按排序顺序插入该元素。? length = count($arr);
if($length

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门