zoukankan      html  css  js  c++  java
  • 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);
    
  • 相关阅读:
    Epplus
    常用的android弹出对话框
    android 获取当前位置
    android:inputType参数类型说明
    PageRank算法
    XGBoost算法
    FP-growth算法
    卡方分布与卡方检验
    Apriori算法
    关联规则
  • 原文地址:https://www.cnblogs.com/meetuj/p/10414395.html
Copyright © 2011-2022 走看看