首页 > php代码 > php 常用的排序算法代码[冒泡,递归排序

php 常用的排序算法代码[冒泡,递归排序

<?php

//冒泡排序算法

function bubblesort($arr) {
    $n = count($arr);
    for ($i = 0; $i < $n; $i++) {
        for ($j = $i; $j <= $n - 1; $j++) {
            if ($arr[$i] > $arr[$j]) {
                $temp = $arr[$i];
                $arr[$i] = $arr[$j];
                $arr[$j] = $temp;
            }
        }
    }
    return $arr;
}

//直接插入排序

function insertsort($arr) {
    $n = count($arr);
    for ($i = 1; $i < $n; ++$i) {
        if ($arr[$i] < $arr[$i - 1]) {
            $tmp = $arr[$i];
            $j = 0;
            for ($j = $i - 1; $j >= 0 && $tmp < $arr[$j]; --$j) {
                $arr[$j + 1] = $arr[$j];
            }
            $arr[$j + 1] = $tmp;
        }
    }
    return $arr;
}

简单排序算法

function simplesort($arr) {
    $tmp = 0;
    $t = 0;
    $n = count($arr);
    for ($i = 0; $i < $n; ++$i) {
        $t = $i;
        for ($j = $i + 1; $j < $n; ++$j) {
            if ($arr[$t] > $arr[$j]) {
                $t = $j;
            }
        }
        $tmp = $arr[$i];
        $arr[$i] = $arr[$t];
        $arr[$t] = $tmp;
    }
    return $arr;
}

//快速排序算法

function qsort($array) {
    $n = count($array);
    if ($n <= 1) {
        return $array;
    }
    $key = $array[0];
    $l = array();
    $r = array();
    //分别进行递归排序,然后合成一个数组
    for ($i = 1; $i < $n; $i++) {
        if ($array[$i] <= $key) {
            $l[] = $array[$i];
        } else {
            $r[] = $array[$i];
        }
    }
    $l = qsort($l);
    $r = qsort($r);
    return array_merge($l, array(
        $key
    ) , $r);
}


永久地址:http://www.phprm.com/code/3e8c16634f0674c0252d5954bc1e5662.html

转载随意~请带上教程地址吧^^

标签:排序

相关文章

发表留言