• PHP实现四种排序-快速排序


    代码实现:

    /**
    *	快速排序
    *	选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。
    *	此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。
    */
    function quickSort($arr){
    	$mnt = count($arr);
    	if($mnt<=1){
    		return $arr;
    	}
    	//选择第一个元素作为基准
    	$temp 	   = $arr[0];
    	//遍历除了标尺外的所有元素,按照大小关系放入两个数组内
    	//初始化两个数组
    	$left_arr  = [];//小于基准的
    	$right_arr = [];//大于基准的
    	for ($i=1; $i < $mnt; $i++) { 
    		if($temp>$arr[$i]){
    			$left_arr[] = $arr[$i];
    		}else{
    			$right_arr[] = $arr[$i];
    		}
    	}
    	//再分别对左边和右边的数组进行相同的排序处理方式递归调用这个函数
    	$left_arr  = quickSort($left_arr);
    	$right_arr = quickSort($right_arr);
    
    	$arr = array_merge($left_arr,array($temp),$right_arr);
    	return $arr;
    }
    
    //测试
    $arr = [5,2,1,1,3,1,4];
    $end = quickSort($arr);
    echo "<pre>";
    print_r($end);
    
  • 相关阅读:
    DENIED Redis is running in protected mode
    Redis接口的调用
    Redis复制
    Redis安全
    Redis持久化
    Redis简单示例
    【T11】提防对等实体的不友好动作
    【T10】记住,TCP__IP不是轮询的
    Python中的with语句
    postgreSQL中timestamp转成date格式
  • 原文地址:https://www.cnblogs.com/meetuj/p/10414395.html
Copyright © 2020-2023  润新知