您现在的位置是:网站首页>文章内容文章内容

PHP实现冒泡排序

李鹏2022-08-21PHP1106人已围观

基本思想:对需要排序的数组从后往前进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换。代码如下:

<?php

function my_sort(array $arr,string $by = 'asc') ## asc 正序 desc 倒序
{
	for ($i=0; $i < count($arr); $i++) { 
		for ($k=0; $k < count($arr) - $i -1; $k++){
			if ($by == 'asc' && $arr[$k] > $arr[$k+1]) {
				$sort = true;
				$val = $arr[$k];
				$arr[$k] = $arr[$k+1];
				$arr[$k+1] = $val;
			}else if ($by == 'desc' && $arr[$k] < $arr[$k+1]) {
				$sort = true;
				$val = $arr[$k];
				$arr[$k] = $arr[$k+1];
				$arr[$k+1] = $val;
			}
		}
		if (!$sort) {
			break;
		}
	}
	return $arr;
}
 
$arr = [3,1,2,9,5,13,8,7,26,14,198,65,23,47];
echo json_encode(my_sort($arr,'desc'));  ## 结果 [198,65,47,26,23,14,13,9,8,7,5,3,2,1]

0

文章评论

我的名片

姓名:李鹏

职业:PHP工程师

现居:广东-深圳

网址:https://www.lipeng93.cn