zoukankan      html  css  js  c++  java
  • php常见数组排序算法

     冒泡排序

        function bubbleSort(){
            $arr=array(18,7,3,5,92,4,214,867,369,32,4); 
            $count=count($arr);
            for($i=1;$i<$count;$i++){
                for($j=0;$j<$count-$i;$j++){
                    if($arr[$j]<$arr[$j+1]){
                        $temp=$arr[$j];
                        $arr[$j]=$arr[$j+1];
                        $arr[$j+1]=$temp;
                    }
                }
            }
            return $arr;
        }

     快速排序

        public function  quickSort($array){
            $count=count($array);
            if($count<=1){
                return $array;
            }
            $base_num=$array[0];
            $left_array=array();
            $right_array=array();
            for($i=1;$i<$count;$i++){
                if($array[$i]>$base_num){
                    $left_array[]=$array[$i];
                }else{
                    $right_array[]=$array[$i];
                }
            }
            $left_array=quickSort($left_array);
            $right_array=quickSort($right_array);
    
           return  array_merge($left_array,array($base_num),$right_array);
    
        }
        
            $array=array(18,7,35,92,421,41,57,3,41,65,1);
            print_r(quickSort($array));

    选择排序

    function select($arr)
    {
        $count = count($arr);
        for ($i = 0; $i < $count - 1; ++$i) {
            $k = $i;
            for ($j = $i + 1; $j < $count; ++$j) {
                if ($arr[$j] < $arr[$k]) {
                    $k = $j;
                }
            }
            if ($k != $i) {
                $temp = $arr[$i];
                $arr[$i] = $arr[$k];
                $arr[$k] = $temp;
            }
        }

        return $arr;
    }

    插入排序

        function  insertSort(){
            $arr=array(18,7,35,92,421,41,57,3,41,65);
            $count=count($arr);
            for($i=1;$i<$count;$i++){
                $temp=$arr[$i];
                for($j=$i-1;$j>=0;$j--){
                    if($temp>$arr[$j]){
                        $arr[$j+1]=$arr[$j];
                        $arr[$j]=$temp;
                    }
                }
            }
            var_dump($arr);
        }

     桶排序

    public function bucketSort(){
            $array=array(18,7,35,92,421,41,57,3,41,65,1);
            for($i=0;$i<=500;$i++){
                $temp_array[$i]=0;
            }
            for($i=0;$i<count($array);$i++){
                $t=$array[$i];
                $temp_array[$t]=$temp_array[$t]+1;
            }
            for($i=0;$i<=500;$i++){
                for($j=1;$j<=$temp_array[$i];$j++){
                    echo $i.',';
                }
            }
        }

      二分查找

        function binary_search($array, $item)
        {
            $low = 0;
            $high = count($array)-1;
            while ($low <= $high) {
                $mid = floor(($low + $high)/2);
                $guess = $array[$mid];
                if ($guess == $item) {
                    return $mid;
                } else if($guess < $item) {
                    $low = $mid + 1;
                } else {
                    $high = $mid - 1;
                }
            }
            return '';
        }
    $array = [1, 2, 3, 4, 5, 6];
    $item = 2;
    echo binary_search($array, $item);

     指定概率

    二叉树

  • 相关阅读:
    PCM存储格式 Intel 和 Motorola
    shell 命令行
    机器学习 | 算法笔记- 集成学习(Ensemble Learning)
    基于深度学习的目标检测综述
    机器学习 | 算法笔记- 逻辑斯蒂回归(Logistic Regression)
    机器学习 | 算法笔记- 朴素贝叶斯(Naive Bayesian)
    机器学习 | 算法笔记- 支持向量机(Support Vector Machine)
    机器学习 | 算法笔记- k近邻(KNN)
    机器学习 | 算法笔记- 决策树(Decision Tree)
    机器学习 | 算法笔记- 线性回归(Linear Regression)
  • 原文地址:https://www.cnblogs.com/mengor/p/8144822.html
Copyright © 2011-2022 走看看