<?php
class Sort
{
/**
* 插入排序:认为前面的是有序队列
* 将待排序的一组序列分为已排好序和未排序的两个部分,初始状态时,已排序序列仅包含第一个元素,未排序序列中的元素为除了第一个以外N-1个元素;
* 此后将未排序序列中的元素逐一插入到已排序的序列中。如此往复,经过N-1次插入后,未排序序列中元素个数为0,则排序完成(稳定排序)。
* 时间复杂度:O(N2)
* @param array $arr [49,38,65,97,76,13,27,49]
* @return array
*/
function insertSort($arr)
{
$num = count($arr);
if ($num <= 1) {
return $arr;
}
for ($i = 1; $i < $num; $i++) {
$k = $i - 1;
$t = $arr[$i];
while ($k >= 0 && $t < $arr[$k]) {
$n = $arr[$k + 1];
$arr[$k + 1] = $arr[$k];
$arr[$k] = $n;
$k--;
}
}
return $arr;
}
/**
* 简单选择排序
* 简单选择排序(Simple Selection Sort)是一种直观的排序算法,在未排序的序列中,选出最小的元素和序列的首位元素交换,
* 接下来在剩下的未排序序列中再选出最小元素与序列的第二位元素交换,依次类推,最后形成从小到大的已排序序列(不稳定)。
* 时间复杂度:O(N2)
* @param array $arr [49,38,65,97,76,13,27,49]
* @return array
*/
function selectSort($arr)
{
$count = count($arr);
if ($count < 2) {
return $arr;
}
for ($i &#
常见PHP面试算法题
最新推荐文章于 2025-04-23 15:19:07 发布