php冒泡、选择、插入、快速、归并、sort排序代码实现及性能比较

代码语言:php

所属分类:算法

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
/*
 * php 四种排序算法的时间与内置的sort排序比较
 * 3000个元素,四种算法的排序所用的时间比较
 * 冒泡排序 857.98192024231ms
 * 选择排序 903.74493598938ms
 * 插入排序 296.8270778656ms
 * 快速排序 15.607833862305ms
 * sort排序 0.95200538635254ms
 * 归并排序 14.61386680603ms
 * */


/*
* @param 冒泡排序
* 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
* 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
* */
function BubbleSort($arr) {
    $len = count($arr);
    //设置一个空数组 用来接收冒出来的泡
    //该层循环控制 需要冒泡的轮数
    for ($i = 1; $i < $len; $i++) {
        $flag = false; //本趟排序开始前,交换标志应为假
        //该层循环用来控制每轮 冒出一个数 需要比较的次数
        for ($k = 0; $k < $len - $i; $k++) {
            //从小到大排序
            if ($arr[$k] > $arr[$k + 1]) {
                $tmp = $arr[$k + 1];
                $ar.........完整代码请登录后点击上方下载按钮下载查看

网友评论0