首页 > 编程语言 > 详细

排序算法php

时间:2016-01-14 20:42:43      阅读:162      评论:0      收藏:0      [点我收藏+]

  几个简单易懂的排序算法。

<?php


// 冒泡排序
function bubble_sort(array $arr){
    $len = count($arr) - 1;
    for($i=0; $i< $len; $i++){
        // 升序的话,两两比较第一轮排序过后,最后一个一定是最大的了;
        // 所以第二轮时$j依然从0开始,但是结束的时候只需要管前$len-1的长度
        for($j=0; $j < $len-$i; $j++){
            if ($arr[$j] > $arr[$j+1]){
                $temp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $temp;
            }
        }
    }
    return $arr;
}



// 选择排序
function select_sort(array $arr){
    $len = count($arr) - 1;
    for($i=0; $i<= $len; $i++){
        for($j=$i; $j <= $len; $j++){
            // 选择排序,就是选择下边是$i的元素,固定住它,让它去和$j的比和交换
            if ($arr[$j] < $arr[$i]){
                $temp = $arr[$j];
                $arr[$j] = $arr[$i];
                $arr[$i] = $temp;
            }
        }
    }
    return $arr;
}



// 插入排序
function insert_sort(array $arr){
    $len = count($arr) - 1;
    for($i=0; $i<= $len; $i++){
        // 在$i位置前面的元素进行插入
        for($j=$i; $j >0; $j--){
            if ($arr[$j-1] > $arr[$j]){
                $temp = $arr[$j];
                $arr[$j] = $arr[$j-1];
                $arr[$j-1] = $temp;
            }
        }
    }
    return $arr;
}


$arr = array(12, 9, 1, 4, 6, -3);

$bubble = bubble_sort($arr);
$select = select_sort($arr);
$insert = insert_sort($arr);


echo ‘<pre>‘;
print_r($bubble);

echo ‘<pre>‘;
print_r($select);

echo ‘<pre>‘;
print_r($insert);

/**
 *
Array
(
[0] => -3
[1] => 1
[2] => 4
[3] => 6
[4] => 9
[5] => 12
)
 */

 

排序算法php

原文:http://www.cnblogs.com/firstForEver/p/5131439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!