zoukankan      html  css  js  c++  java
  • 数组的排序方法

    数组的排序方法
    分为两在类:
    1、内(内存)部排序
    2、外部排序(数据量很大,内存放不下,需要借助外部
    存储)


    ----------------
    排序sorting是一个程序员的基本功
    一:内部排序
    (1)交换式排序
    1、冒泡法

    数组默认的传递是值传递,而不是地址传递
    后面将讲到对象类型,对象默认的传递就是地址传递

    //优化,将冒泡排序法封装成函数,利于以后使用
    function bubbleSort(&$myarr){
    $temp=0;//定义一个中间变量
    //外层循环
    for($i=0;$i<count($myarr)-1;$i++){
    for($j=0;$j<count($myarr)-1-$i;
    $j++){
    if($myarr[$j]>$myarr[$j
    +1]){
    $temp=$myarr[$j];
    $myarr[$j]=
    $myarr[$j+1];
    $myarr[$j+1]=
    $temp;
    }

    }
    }
    }

    $arry=array(2,6,-4,7,9,0);
    bubbleSort($arry);
    print_r($arry);

    2、快速排序法(神奇的快速,涉及到递归)

    3、选择排序法

    function selectSort(&$myarr){
    $temp=0;
    for($i=0;$i<count($myarr)-1;$i++){
    //假设$i就是最小的数
    $minval=$myarr[$i];
    //记录我认为的最小数的下标
    $minIndex=$i;
    for($j=$i+1;$j<count($myarr);$j+
    +){
    //说明我们认为的最小值,不是最小
    if($minval>$myarr[$j]){

    $minval=$myarr[$j];
    $minIndex=$j;

    }

    }
    //最后交换
    $temp=$myarr[$i];
    $myarr[$i]=$myarr[$minIndex];
    $myarr[$minIndex]=$temp;
    }

    }
    4、插入排序法

    查询速度:
    冒泡排序法<选择排序法<插入排序法

    提升自己:
    研究linux内核
    研究算法
    研究网络技术(网络安全)
    研究数据库
    二:外部排序

  • 相关阅读:
    ADX3000的组网配置
    cuda编程知识普及
    最优的cuda线程配置
    JBOSS在win7环境下启动run.bat无反应
    2013年8月第2个周结
    JBOSS AS 性能调整优化
    jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001]
    @Inject 注入 还是报空指针
    css3 box-shadow阴影(外阴影与外发光)讲解
    事务模板
  • 原文地址:https://www.cnblogs.com/echonn/p/2418688.html
Copyright © 2011-2022 走看看