首页 >

PHP实现数组排序办法:快速排序,插入排序,归并排序算法

后端开发|php教程PHP实现数组排序办法:快速排序,插入排序,归并排序算法
数组排序
后端开发-php教程
投诉建议举报网页源码,Ubuntu创建dat文件,tomcat的免安装版本,c 写爬虫程序,php文件加密后如何运行,闽侯专业seolzw
php中对于数组的排序方法是有很多种的,每种数组排序也都有各自不同的原理,下面就来具体看一下关于快速排序算法,归并排序算法以及插入排序算法的示例。
农村村委会网站源码,ubuntu重启卡住,为什么进不了tomcat,乌鲁木齐爬虫宠物,一个做外贸的跟php,十堰seo推广多少钱lzw

异形数组的遍历

求如下数组中数字的平均值:

石器时代全套源码,命令行 vscode 调试,ubuntu系统whois,tomcat怎么释放内存,android爬虫代码,php 三维数组排序,岳阳seo优化公司哪家好,jsp网站源码代码合集下载,美菜网模板lzw
$arr1 = array(1, 2, array(31, 32, 33), 4,array(51, 52, 53, array(541, 542, 543, 544) ),6, array(71, 72, 73),);$count = 0; //计数$sum = GetArraySum($arr1);echo “\

快速排序算法

原理描述:

对于这样一个数组:[5, 1,2, 6,7];

取出第一项(并作为中间数组),并将其余项与其对比后,分为两个数组:

左边数组项比中间项小,右边数组不比中间项小。

如果左边数组和右边数组已经是排好序的数组,则将这3者合并起来,就是最终结果。

如果左边数组和右边数组还不是排好序的数组,则继续递归使用本函数获取有序数组。

原理图:

PHP实现数组排序办法:快速排序,插入排序,归并排序算法

原理性数据:

$arr1 = [5, 2, 1, 6,7]; //有力说明原理的数据1

小的:[2, 1], 大的:[6, 7], 中间的: [5]

将三者合并: [1, 2, 5, 6, 7];

$arr1 = [2, 1]; //有力说明原理的数据2

中间:[2], 左边:[1] , []

具体案例:

$arr1 = [5, 2, 4, 6, 1, 3];$arr1 = [5, 2, 4, 6, 1, 3];//$arr1 = [5, 3, 2, 8, 7];echo “\

插入排序算法

原理描述:

对于这样一个数组:[2, 3, 4, 1];

要将某个数n插入到一个已经排好序的数组中,

只要将n跟这个数组的项从后往前一个一个对比,只要发现某项比n大,

就将该项后移一位,然后继续往前取出并对比,比n大就往后移动一位,以此类推。

最后没有比n大的时候,就把n放入到刚才往后移动时空出来的那个位置上。

对于一个数组,第1项就可以当做一个“已经排好序”的数组,

则第2项就可以遵照上述原理来进行“插入排序”,于是前两个就可以排好,

并成为了具有两个元素的“排好序的数组”。后续以此类推。

原理图:

PHP实现数组排序办法:快速排序,插入排序,归并排序算法

原理数据:

$arr1 = [2, 3, 4, 1]; //有力说明原理的数据1

$arr1 = [2, 3, 1]; //有力说明原理的数据2

$arr1 = [2, 1]; //有力说明原理的数据3

$arr1 = [1, 2]; //有力说明原理的数据3

具体案例:

$arr1 = [5, 2, 4, 6, 1, 3];$arr1 = [2, 3, 4, 1];$arr1 = [2, 4, 5, 6, 1, 3];echo “\

归并排序算法

原理描述:

对于这样的一个数组: $arr1 = [1, 3, 5, 2, 4, 6];将其一分为二:$a = [1, 3, 5],
$b = [2, 4, 6];

如果有两个各自已经排好序的数组,则对这两个数组进行如下操作后,就可以获得一个排好序的这两个数组的“溶合数组”:

取出数组a的第一项a1,再取出数组b的第一项b1,比较a1和b1的大小,

并将小的(假设为a1)放入一个新数组,并去删除对应数组a的第一项,

而后再取出对应数组的第一项(不是刚才的那个数据了),而后继续将两者对比大小

每次都放入小的到新数组中,并继续下一次的“删除,取数,对比”。。。。

这样之后最终的结果是,新的数组中就可以得到一个新的排好序的数组。

对于尚未排好序的数组,只要对其以递归方式继续“一分为二”地分割,最终会得到最短数组——只有一个或0个单元,这种数组自然是排好序的了。

原理图:

PHP实现数组排序办法:快速排序,插入排序,归并排序算法

原理数据:

$arr1 = [1, 3, 5, 4, 6, 7, 8 ]; //有力说明原理的数据1

从中间一份为2: [ ]; [ 6, 7, 8]

[ 1, 3, 4, 5, ]

$arr1 = [1, 3, 2, 4]; //有力说明原理的数据2

演示案例:

$arr1 = [5, 2, 4, 6, 1, 3];echo “\

php 冒泡排序 快速排序,php冒泡排序

php 数组排序方法分享(冒泡排序、选择排序)


PHP实现数组排序办法:快速排序,插入排序,归并排序算法
  • Javascript数组的排序 sort()方法和reverse()方法【javascript】
  • Javascript数组的排序 sort()方法和reverse()方法【javascript】 | Javascript数组的排序 sort()方法和reverse()方法【javascript】 ...

    PHP实现数组排序办法:快速排序,插入排序,归并排序算法
  • PHP数组学习之二维数组怎么进行排序(2种方法)
  • PHP数组学习之二维数组怎么进行排序(2种方法) | PHP数组学习之二维数组怎么进行排序(2种方法) ...

    PHP实现数组排序办法:快速排序,插入排序,归并排序算法
  • 不使用php api函数实现数组的交换排序示例【PHP】
  • 不使用php api函数实现数组的交换排序示例【PHP】 | 不使用php api函数实现数组的交换排序示例【PHP】 ...