微信号:phpdaily

介绍:PHP在线专注于PHP编程语言学习,PHP开发经验分享,工作问题解决以及PHP在线技能测评等多功能为一体的服务系统,希望给工作学习中的PHPER带来些帮助。

PHP实现四种基本排序算法

2018-07-28 00:04 PHP在线

微信公众号:PHP在线

本文中主要展示了用php 实现冒泡排序法,快速排序法,选择排序法,插入排序法

并以从小到大的顺序进行排序。

1、冒泡排序

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

2、选择排序

function selectSort($arr){
    $count = count($arr);
    for($i=0;$i<$count-1;$i++){
    $min = $i;
    for($k=$i+1;$k<$count;$k++){
        if($arr[$min]>$arr[$k]){
        $min = $k;
        }
    }

        if($min != $i){
        $temp = $arr[$min];
        $arr[$min]=$arr[$i];
        $arr[$i]=$temp;
        }
    }
    return $arr;
}

3、选择排序

function insertSort($arr){
    $count = count($arr);
    for($i=1;$i<$count;$i++){
        $temp = $arr[$i];
    for($k=$i-1;$k>=0;$k--){
        if($temp<$arr[$k]){
        $arr[$k+1]=$arr[$k];
        $arr[$k] = $temp;
        }else{
        break;
        }
    }
    }
    return $arr;
}

4、快速排序

function quickSort($arr) {
    $length = count($arr);
    if($length <= 1) {
        return $arr;
    }
    $base_num = $arr[0];

    $left_array = array();  
    $right_array = array(); 
    for($i=1; $i<$length; $i++) {
        if($base_num > $arr[$i]) {
            $left_array[] = $arr[$i];
        } else {
            $right_array[] = $arr[$i];
        }
    }

    $left_array = quickSort($left_array);
    $right_array = quickSort($right_array);

    return array_merge($left_array, array($base_num), $right_array);
}


 
PHP在线 更多文章 GitHub 的 MySQL 高可用性实践分享 浅谈API的设计及其安全性 PHP数组使用之道(干货) 网站高并发解决方案(理论知识) Redis数据结构详解,五种数据结构分分钟掌握
猜您喜欢 Apprenda发布Kubernetes自动化运维工具KET Early Amazon: The first week 微软爱开源 恩爱秀你看 新来的安全专家,几个月后,哭了…… 内含福利|有时候,你需要抱紧大腿才能原地起飞啊