php排序
来源:互联网 发布:阿里云没有公网ip 编辑:程序博客网 时间:2024/06/17 23:14
class Mopao{
//权限修饰符
//public 公共的 类内 类外 继承 都可调用
//private 私有的 只可以类内调用
//protected 受保护的 父类和子类 可以调用
public function bubbleSort($arr){
$count = count($arr);
//数组中的元素是否小于1,如果小于返回数组
if($count<=1) return $arr;
$side = $arr[0];
//定义两个数组
$right = [];
$lift = [];
for($i=1;$i<$count;$i++){
if($arr[$i]<$side){
$lift[] = $arr[$i];
}else{
$right[] = $arr[$i];
}
}
//使用递归
$right = $this->bubbleSort($right);
$lift = $this->bubbleSort($lift);
//合并两个数组
return array_merge($lift,[$side],$right);
}
//冒泡排序
//数组中相邻的两个数 依次比较大小 如果符合我们的条件则不变 不符合条件的调换两个数的位置
/*
@content 冒泡排序
@params $arr array 需要排序的无序数组
@return $arr array 排好序的有序数组
*/
public function BubbleSort($arr)
{
$len = count($arr);
//控制循环的层数
for ($i=1;$i<$len;$i++) {
//控制比较的次数
for ($j=0;$j<$len-$i;$j++) {
if ($arr[$j] > $arr[$j+1]) {
list($arr[$j],$arr[$j+1]) = [$arr[$j+1],$arr[$j]];
}
}
}
return $arr;
}
/*
@content 快速排序
@params $arr array 需要排序的无序数组
@return $arr array 排好序的有序数组
*/
public function QuickSort($arr)
{
$len = count($arr);
if ($len <=1) {
return $arr;
}
//定义我们的标杆
$base = $arr[0];
$big = [];
$small = [];
for ($i=1;$i<$len;$i++) {
if ($arr[$i] > $base) {
$big[] = $arr[$i];
} else {
$small[] = $arr[$i];
}
}
$left = $this->QuickSort($small);
$right = $this->QuickSort($big);
$arr = array_merge($left,[$base],$right);
return $arr;
}
/*
@content 获取不重复的三位数
@params $arr array 长度为5的不重复索引数组
@returnn $data array 所有符合条件的数的集合
*/
public function GetNum($arr)
{
$len = count($arr);
$data = [];
for ($i=0;$i<$len;$i++) {
if ($arr[$i] ==0) continue;
for ($j=0; $j < $len; $j++) {
for ($k=0; $k < $len ; $k++) {
if ($arr[$i] !=$arr[$j] && $arr[$i] != $arr[$k] && $arr[$j] != $arr[$k]) {
$data[] = $arr[$i].$arr[$j].$arr[$k];
}
}
}
}
return $data;
}
/*
@content 选择排序
@params $arr array 无序索引数组
@returnn $data array 排好序的有序数组
*/
public function SelectSort($arr)
{
$len = count($arr);
for ($i=0;$i<$len-1;$i++) {
//我们认为的最小值的位置
$min = $i;
for ($j=$i+1;$j<$len;$j++) {
if ($arr[$min] > $arr[$j]) {
$min = $j;
}
}
if($min != $i) {
list($arr[$min],$arr[$i]) = [$arr[$i],$arr[$min]];
}
}
return $arr;
}
/*
@content 插入排序
@params $arr array 有序数组插入一个新元素后的结果
@returnn $arr array 排好序的有序数组
*/
public function InsertSort($arr)
{
$len = count($arr);
for ($i=1;$i<$len;$i++) {
for ($j=$i-1;$j>=0;$j--) {
if ($arr[$j] > $arr[$j+1]) {
list($arr[$j+1],$arr[$j]) = [$arr[$j],$arr[$j+1]];
} else {
break;
}
}
}
return $arr;
}
}
//实例化
$obj = new Mopao;
//打乱的数组
$arr = array(1,121212,3,2,5,99,4,9,7);
//调用方法
$info = $obj->bubbleSort($arr);
echo "<pre>";
print_r($info);exit;
- php 排序
- php排序
- php排序
- php排序
- PHP 排序
- php 排序
- php 排序
- php排序
- 【php】php排序算法
- php 冒泡排序 快速排序
- php 冒泡排序 快速排序
- php排序&冒泡法排序
- PHP排序之归并排序
- PHP排序和MYSQL排序
- 【PHP】冒泡排序法排序
- php 冒泡排序&快速排序
- php选择排序,插入排序
- php排序算法(冒泡排序,快速排序)
- JUnit单元测试
- 源码提供!Android即时通讯和sns开源项目汇总
- 工具类总结(2)-mysql分页工具类
- 语言发展史
- 我的第一个.exe文件
- php排序
- Request.Url
- spring boot实战(第十二篇)整合RabbitMQ
- Spring Boot Controller
- win版git的安装及获取源码踩过的坑(超清晰)
- javascript闭包详解
- Cortex-M3存储器系统
- wifi发射功率查看和设置
- 将WEX5打包的应用设置为开机自启动