(图片来源网络,侵删)
在PHP中,有多种排序算法可以使用,下面将介绍几种常见的排序算法,包括冒泡排序、选择排序、插入排序和快速排序。
1、冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数组,比较相邻的元素并交换它们的位置,直到整个数组按照升序排列。
function bubbleSort($arr) { $len = count($arr); for ($i = 0; $i < $len 1; $i++) { for ($j = 0; $j < $len $i 1; $j++) { if ($arr[$j] > $arr[$j + 1]) { $temp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; } } } return $arr; }
2、选择排序
选择排序是一种简单直观的排序算法,它通过每次从待排序的数组中选择最小(或最大)的元素,并将其放到已排序部分的末尾,直到整个数组排序完成。
function selectionSort($arr) { $len = count($arr); for ($i = 0; $i < $len 1; $i++) { $minIndex = $i; for ($j = $i + 1; $j < $len; $j++) { if ($arr[$j] < $arr[$minIndex]) { $minIndex = $j; } } if ($minIndex != $i) { $temp = $arr[$i]; $arr[$i] = $arr[$minIndex]; $arr[$minIndex] = $temp; } } return $arr; }
3、插入排序
插入排序是一种简单且高效的排序算法,它通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
function insertionSort($arr) { $len = count($arr); for ($i = 1; $i < $len; $i++) { $key = $arr[$i]; $j = $i 1; while ($j >= 0 && $arr[$j] > $key) { $arr[$j + 1] = $arr[$j]; $j; } $arr[$j + 1] = $key; } return $arr; }
4、快速排序
快速排序是一种常用的高效排序算法,它采用分治的思想,选取一个基准元素,将数组分为两部分,一部分小于基准元素,另一部分大于基准元素,然后对这两部分分别进行递归排序,最后合并两个有序数组。
function quickSort($arr) { if (count($arr) <= 1) { return $arr; } else { $pivot = array_shift($arr); // 选取第一个元素作为基准元素 $left = []; // 存放小于基准元素的值 $right = []; // 存放大于基准元素的值 foreach ($arr as $value) { if ($value < $pivot) { $left[] = $value; // 将小于基准元素的值放入左侧数组中 } else { $right[] = $value; // 将大于基准元素的值放入右侧数组中 } } return array_merge(quickSort($left), [$pivot], quickSort($right)); // 递归调用快速排序函数并合并结果数组返回 } }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/677255.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复