zoukankan      html  css  js  c++  java
  • 基本排序算法(冒泡、插入、选择、快排)

    1.首先定义一个需要排序的数组:

    $arr=array(12,432,123,454,232,123,349,3,5,745,90);

    2.冒泡排序:相邻之间的数据做对比,每次对比后得出一个下次不需要再对比的数据。

    function maopao($arr){
    $len=count($arr);
    for($i=0;$i<$len;$i++){
        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;
    }

    3.插入排序:每次从待排序的一组数中取一个数与已排序的数据做对比。

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

    4.选择排序:每次从待排序的一组数中判断最小或最大的数,并交换位置。

    function xuanze($arr){
    $len=count($arr);
    for($i=0;$i<$len-1;$i++){
        $key=$i;
        for($j=$i+1;$j<$len;$j++){
            if($arr[$key]<$arr[$j]){
                $key=$j;
            }
        }
        if($key!=$i){
            $temp=$arr[$key];
            $arr[$key]=$arr[$i];
            $arr[$i]=$temp;
        }
    }
    return $arr;
    }

    5.快速排序:以某值作参考,以该值为基准,分割带排序数组,最后递归合并。

    function quicksort($arr){
    $len=count($arr);
    if($len<=1)
        return $arr;
    $left=array();
    $right=array();
    $key=$arr[0];
    for($i=1;$i<$len;$i++){
        if($arr[$i]>$key)
            $right[]=$arr[$i];
        else
            $left[]=$arr[$i];
    }
    $left=quicksort($left);
    $right=quicksort($right);
    return array_merge($left,array($key),$right);
    }
     6.未尽事宜,请多交流
  • 相关阅读:
    物联网习题总结
    orm.TextField undefined (type orm.Ormer has no field or method TextField)
    中级软件设计师下午试题(百度文库 )
    34-Digit factorials
    解决[INS-35075] 已存在具有指定标识符的数据库实例
    PE10 Summation of primes
    构建之发阅读笔记02
    软件工程概论第十二周学习进度表
    四则运算2(改进版)
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/lxz88/p/5550200.html
Copyright © 2011-2022 走看看