php 排序

冒泡排序 :

依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数

//冒泡排序
public function  index($arr){
	//统计数组长度
	$count = array($arr);
 	//确定需要循环多少次
 	for($i=0;$i<=$count;$i++){
		//确定循环
 		for($x=$i+1;$i<$count;$i++){
			//进行比大小
			if($arr[$i]>$arr[$k]){
				//定义一个临时变量 变量是从右到左赋值
				$tem=$arr[$i];
				$arr[$i]=$arr[$k];
				$arr[$k]=$tem;
			}
		}
 	}
 }

选择排序

在这里插入图片描述


public function index($arr){
	$len=count($arr);
	for($i=0;$i<$len;$i++){
		//记录最小数组索引
		$min=$arr[$i];
		for($a=$i+1;$i<$len;$i++){
			//判断是否是最小数组索引
			if($arr[$i]>$arr[$a]){
				//交换
				$min=$arr[$a];
			}
		}
		$temp = $arr[$i];
		$arr[$i]=$arr[$a];
		$arr[$a]=$temp
	}
}

快速排序:

在这里插入图片描述

public function index($arr){
	$count = count($arr);
	//判断是否需要循环
	if($count<=1){
		return $arr;
	}
	//定义中间数
	$m=$arr[0];
	//定义左右两个数组
	$left=$right=[];
	//遍历。判断两个临近的两个值谁大,大的放右边,小的放左边
	for($i=1;$i<$count;$i++){
		if($a[$m]>$a[$i]){
			$left[]=$a[$i];
		}else{
			$right[]=$a[$m];
		}
	}
	//递归调用当前方法
	$left=$this->index($left);
	$left[]=$m;
	$right=$this->index($right);
	//合并数组
	$arr = array_marge($left,$arr[$m],$right);
}

//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值