1. 冒泡排序

// 1.冒泡排序法
$array = [12,3,23,2,4,1,0]; function maoPao($arr){
//先判断是不是空数组
if(!empty($arr)){
$len = count($arr);
for($i=0;$i<$len;$i++){
for($j=$i+1;$j<$len;$j++){
if($arr[$i]>$arr[$j]){
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
} return $arr;
}
print_r(maoPao($array));

2. 快速排序

$array = [12,3,23,2,4,1,0];

// 2.快速排序法
function quick_sort($arr){
if (count($arr) <= 1) return $arr; //这个判断必须加,不然报错,$left_arr和$right_arr就变成空数组了 $len = count($arr);
$left_arr = array();
$right_arr = array(); for($i=1;$i<$len;$i++){ //$i一定要从1开始
if($arr[$i]<$arr[0]){
$left_arr[] = $arr[$i];
}else{
$right_arr[] = $arr[$i];
}
} $left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr,array($arr[0]),$right_arr); //注意arr[0]要变成数组才不会出错
}
print_r(quick_sort($array));

3.选择排序

 //选择排序
function selectSort($arr)
{
$len = count($arr);
for($i=0;$i<$len;$i++){
//获取但方法前值的索引
$minIndex = $i;
for($j=$i+1;$j<$len;$j++){
if($arr[$j]<$arr[$minIndex]){
$minIndex = $j;
}
}
if($i!=$minIndex){
$tmp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $tmp;
}
}
return $arr;
} $arr = [2,3,5,6,1,8,7,9,4];
$res = selectSort($arr);
echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;原数组:';
print_r($arr);
echo '<br>排序后的数组:';
print_r($res);

4.插入排序

 function insert($arr) {
$len = count($arr);
if($len<=1) return $arr;
for($i=1; $i<$len; $i++){
for($j=$i; $j>0; $j--){
if($arr[$j] < $arr[$j-1]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $tmp;
}else{
break;
}
}
}
return $arr;
}

最新文章

  1. RMS:Microsoft Office检测到您的信息权限管理配置有问题。有关详细信息,请与管理员联系。(转)
  2. oracle数据泵导入
  3. 《Neural Network and Deep Learning》_chapter4
  4. WebDriver--操控浏览器
  5. 今天写项目时,突然发现canvas的一些公式不记得了,所以整理了一番,分享给大家。
  6. SignalR 远程访问并跨域
  7. ThinkPHP 3.2.3 Widget 扩展的使用
  8. HBase之计数器
  9. 【基本算法】 KMP文本串模式串的字符串匹配算法
  10. (转载)ios关闭虚拟键盘的几种方法
  11. mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
  12. Keil C51里面lib文件生成和调用方法
  13. Dev系列控件的AJAX (转)
  14. BufferedStream类 - 缓冲流
  15. matlab 自定义函数及调用
  16. Unity3D安装破解教程(以Unity5.3.4为例)(转)
  17. Centos 7 LVM xfs文件系统修复
  18. Android Tools 开发工具库开源项目总结
  19. 【LInux】查看Linux系统版本信息
  20. 彻底理解this指向-----实例分析

热门文章

  1. django form组件 cookies,session
  2. Python的IDE之Jupyter的使用
  3. L1-025. 正整数A+B 简单复习一下,。
  4. 虚拟机centos7执行ip addr命令看不到ip地址
  5. Java 串口通信 Ubuntu
  6. Java Jersey的详情概述
  7. webpack升级4出现的问题
  8. 面向对象相关概念与在python中的面向对象知识(魔法方法+反射+元类+鸭子类型)
  9. 3、Rsync备份服务实战
  10. selenium:能够模拟人类打开浏览器的爬虫利器