PHP实现排序算法简单好用容易理解

PHP排序,是我们锻炼逻辑必不可少的,不会可以QQ联系 2817228206。相互学习。

<?php

class r{
	static public $arr = []; // 目标数组
	static public $arrlen = 0; // 数组长度
	static public $row = [];  // 输出数组
	static public $ascoo = 1; // sort|resort
	
	function __construct($arr,$t=1){
		self::$arr = $arr;
		self::$arrlen = count($arr);
		self::$ascoo = ($t==1) ? 1:0;
	}
	
	
	// 选出最大数组最大的值
	function numSum($arr){
		$e = [];
		
		// 选出还剩最后1个的时候直接return
		if(count($arr)==1){
		 return ["key"=>array_keys($arr)[0],"val"=>array_values($arr)[0]]; 
		}
		
		for($i = 0; $i < count($arr); $i++){
			for($n = 0; $n < count($arr); $n++){
				if($arr[$n] > $arr[$i] and $arr[$n]>$e['val']){
					$e['val'] = $arr[$n];
					$e['key'] = $n;
				}
			}
		}
		return $e;
	}
	
	function allSort(){
		for($i = 0;$i<self::$arrlen;$i++){
			
			// 取出数组的 
			$res = $this->numSum(self::$arr);
			
			// sort|resort
			if(self::$ascoo==1){
			 array_push(self::$row,$res['val']);	
			}else{
			 array_unshift(self::$row,$res['val']);
			}
			
			// 删除数组的最大值的(循环一次删除一次)
			 array_splice(self::$arr,$res['key'],1);
		}
		return self::$row;
	}
}


$row  = [7,5,4,12,4,1];


$r = new r($row);
 $r = $r->allSort();
 var_dump($r);
 

效果

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值