zoukankan      html  css  js  c++  java
  • 常用的PHP排序算法以及应用场景

    更多php排序算法应用常景:http://www.bf361.com/algorithm/algorithm-php
    1、冒泡排序 

    冒泡排序:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。

    [平均算法复杂度:O(n*n)]

    62015b988d36adb56b9e16b5a027d28d.gif

    应用场景分析:冒泡排序因为是两两之间逐个进行排序,所以稳定性比较好,即排序所消耗的时间比较稳定(稳定不代表快),可用于对排序时间要求性比较稳定的项目。可针对多样性的数据进行排序:比如待排序的数据变化性比较大,各数据元素之间的跨度比较大,避免最坏情况的出现使消耗的时间过多。

    function bubble_sort($arr) { 
        $n=count($arr); 
        for($i=0;$i<$n-1;$i++){ 
            for($j=$i+1;$j<$n;$j++) { 
                if($arr[$j]<$arr[$i]) { 
                    $temp=$arr[$i]; 
                    $arr[$i]=$arr[$j]; 
                    $arr[$j]=$temp; 
                } 
            } 
        } 
        return $arr; 
    }
    
    $arr = ['12','65','20','22','32','52','3'];
    // 记录开始时间
    $time_start = microtime();
    $res = bubble_sort($arr);
    echo "
    ";
    print_r($res);
    echo "
    "; // 记录结束时间 $time_end = microtime(); $time = $time_end - $time_start; // 输出运行总时间  echo "执行时间 $time 微秒";
  • 相关阅读:
    2016华为实习编程题:停车管理系统
    lintcode:单词切分
    2016网易实习生编程题:数组中两个数的和等于sum
    2016网易实习生编程题:n个骰子的和等于m
    2016百度编程题:钓鱼比赛
    2016百度编程题:裁减网格纸
    2016百度编程题:罪犯转移
    JAVA面试基础
    扔硬币问题
    随机数生成随机数
  • 原文地址:https://www.cnblogs.com/behindman/p/8746308.html
Copyright © 2011-2022 走看看