php快速排序法
16lz
2021-01-22
<?php
function qsort($arr){
//判断是否为数组 或为空
if(!is_array($arr) || empty($arr)){
return array();
}
//获取数组长度
$len = count($arr);
//判断长度 <=1 返回数组
if($len <= 1){
return $arr;
}
//定义中间键 左键 右键
$key[0] = $arr[0];
$left = array();
$right = array();
//循环 下标从1开始
for ($i=1; $i < $len; $i++) {
//判断
if($arr[$i] < $key[0]){
//在左边
$left[] = $arr[$i];
}else{
//右边
$right[] = $arr[$i];
}
}
//递归调用
$left = qsort($left);
$right = qsort($right);
//合并多个数组并返回
return array_merge($left,$key,$right);
}
$arr = array(1232,57,34,657543,21,76,43476321,476,52,76,5,-23);
$arr = qsort($arr);
var_dump($arr);
?>
function qsort($arr){
//判断是否为数组 或为空
if(!is_array($arr) || empty($arr)){
return array();
}
//获取数组长度
$len = count($arr);
//判断长度 <=1 返回数组
if($len <= 1){
return $arr;
}
//定义中间键 左键 右键
$key[0] = $arr[0];
$left = array();
$right = array();
//循环 下标从1开始
for ($i=1; $i < $len; $i++) {
//判断
if($arr[$i] < $key[0]){
//在左边
$left[] = $arr[$i];
}else{
//右边
$right[] = $arr[$i];
}
}
//递归调用
$left = qsort($left);
$right = qsort($right);
//合并多个数组并返回
return array_merge($left,$key,$right);
}
$arr = array(1232,57,34,657543,21,76,43476321,476,52,76,5,-23);
$arr = qsort($arr);
var_dump($arr);
?>
更多相关文章
- 学习成绩统计-【数组操作】
- PHP内爆不适用于大数组?
- 如何为$ wpdb-> insert创建一个包含column => value对的数组
- 如何递归将特色图像应用于Wordpress中的子页面?
- 如何在php中为json数组创建搜索功能
- json_encode在数组上返回null
- PHP数组值进入第二个数组[重复]
- 如何在php数组中插入新的键值对?
- mysql_fetch_array返回一个数组,数字为“1”