首页 » 网站推广 » php中数据排序技巧_PHP编程PHP轨范员最应该掌握的几种排序算法

php中数据排序技巧_PHP编程PHP轨范员最应该掌握的几种排序算法

访客 2024-12-07 0

扫一扫用手机浏览

文章目录 [+]

近日,今日头条和快手事宜将“算法”拉进了大众的视野,一韶光“算法是否存在代价不雅观”的问题,成了各大媒体关注的焦点。
作为程序员,抛开“算法是否存在代价不雅观”的辩论,我们可以从中看到“算法”的巨大力量。
算法,虽然简大略单两个字,但就从技能层面而言,它却不是一个大略的问题。
算法涉及很多内容,须要多个学科,如数学、社会心理学等的合营。

下面我们以PHP程序员最该当节制的几种排序算法为例,看看算法的详细实现。

php中数据排序技巧_PHP编程PHP轨范员最应该掌握的几种排序算法

1、冒泡排序法

php中数据排序技巧_PHP编程PHP轨范员最应该掌握的几种排序算法
(图片来自网络侵删)

描述:

在冒泡排序中,每一个要排序的数字都是一个泡,然后每个泡与泡之间进行比较,然后把最大的泡放在最右侧,直到排序结束,我们把这种排序就称之为“冒泡排序”。

实现:

2、选择排序

描述:

在要排序的一组数中,选出最小的一个数与第一个位置的数交流;然后在剩下的数当中再找最小的与第二个位置的数交流,如此循环到倒数第二个数和末了一个数比较为止。
选择排序是不稳定的。
算法繁芜度O(n2)--[n的平方]。

实现:

3、插入排序

描述:

在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。
如此反复循环,直到全部排好顺序。
直接插入排序是稳定的。
算法韶光繁芜度O(n2)--[n的平方]。

实现:

4、快速排序

描述:

快速排序是对冒泡排序的一种实质改进。
它的基本思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。
在冒泡排序中,一次扫描只能确保最大数值的数移到精确位置,而待排序序列的长度可能只减少1。
快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。
然后又用同样的方法处理它旁边两边的数,直到基准点的旁边只有一个元素为止。

实现:

以上四种排序算法,虽然可以实现数据的排序,但在实际事情中是否利用它们,还是得视情形而定,由于在某些情形下,PHP内置的sort系列函数就可以实现数据排序。
如:

sort():对数组排序。

uasort():利用用户自定义的比较函数对数组中的键值进行排序。

uksort():利用用户自定义的比较函数对数组中的键名进行排序。

usort():利用用户自定义的比较函数对数组进行排序。

arsort():春联系关系数组按照键值进行降序排序。

asort():春联系关系数组按照键值进行升序排序。

本文“系编码之道”原创,转载请注明出处。

标签:

相关文章