排序方式—/冒泡排序/快速排序
来源:互联网 发布:thinkphp cms开发案例 编辑:程序博客网 时间:2024/05/17 23:14
<?php
/**
* @Created by Sort.
* @User: lz
* @Date: 2017/11/27
*/
Class Sort
{
/*
* 冒泡排序-将数组由大到小排序
* */
public function BubblingSort ($arr) {
$len = count($arr);
for($i=1;$i<$len;$i++)
{
for($j=0;$j<$len-$i;$j++)
{
if($arr[$j]<$arr[$j+1])
{
//list函数使用,用于交换位置
list($arr[$j],$arr[$j+1]) = [$arr[$j+1],$arr[$j]];
}
}
}
return $arr;
}
/*
* 快速排序-将数组从小到大排序
* */
public function QuickSort ($arr) {
$len = count($arr);
//设置一个出口
if($len <= 1) {
return $arr;
}
//选择一个中间数,在以这个数为界限分为左边和右边两个数组
$big = [];
$small = [];
//选择一个中间值
$base = $arr[0];
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);
//使用PHP函数array_merge将多个数组的单元合并起来
$arr = array_merge($left,[$base],$right);
return $arr;
}
}
?>
/**
* @Created by Sort.
* @User: lz
* @Date: 2017/11/27
*/
Class Sort
{
/*
* 冒泡排序-将数组由大到小排序
* */
public function BubblingSort ($arr) {
$len = count($arr);
for($i=1;$i<$len;$i++)
{
for($j=0;$j<$len-$i;$j++)
{
if($arr[$j]<$arr[$j+1])
{
//list函数使用,用于交换位置
list($arr[$j],$arr[$j+1]) = [$arr[$j+1],$arr[$j]];
}
}
}
return $arr;
}
/*
* 快速排序-将数组从小到大排序
* */
public function QuickSort ($arr) {
$len = count($arr);
//设置一个出口
if($len <= 1) {
return $arr;
}
//选择一个中间数,在以这个数为界限分为左边和右边两个数组
$big = [];
$small = [];
//选择一个中间值
$base = $arr[0];
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);
//使用PHP函数array_merge将多个数组的单元合并起来
$arr = array_merge($left,[$base],$right);
return $arr;
}
}
?>
阅读全文
0 0
- 排序方式—/冒泡排序/快速排序
- 快速排序 冒泡排序
- 快速排序、冒泡排序
- 冒泡排序 快速排序
- 快速排序、冒泡排序
- 冒泡排序、快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 冒泡排序,快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 快速排序 冒泡排序
- 冒泡排序、快速排序
- 冒泡排序-->快速排序
- 冒泡排序、快速排序
- 冒泡排序 快速排序
- LeetCode-Easy刷题(4) Longest Common Prefix
- 拥塞控制分析之XCP
- hibernate_day04_13_HQL多表查询(内连接和迫切内连接)
- 递归:斐波拉契,阿克曼与汉诺塔(php实现)
- SpringBoot 项目war部署至本地Tomcat
- 排序方式—/冒泡排序/快速排序
- 神经网络不学习的原因
- Python入门 第二天(条件语句、循环语句、dict)
- android studio gradle问题
- tomcat常见问题汇总
- LeetCode-Easy刷题(5) Valid Parentheses
- 全局大喇叭-广播机制
- poj2259(队列)
- Python(面向对象)