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内核
    研究算法
    研究网络技术(网络安全)
    研究数据库
    二:外部排序

  • 相关阅读:
    校内题目T2695 桶哥的问题——吃桶
    一位大佬对学习哲理的思考
    P2845 [USACO15DEC]Switching on the Lights 开关灯
    CF911F Tree Destruction
    CF995C Leaving the Bar
    CF997B Roman Digits
    P1667 数列
    P4035 [JSOI2008]球形空间产生器
    P2679 子串
    P2613 【模板】有理数取余
  • 原文地址:https://www.cnblogs.com/echonn/p/2418688.html
Copyright © 2011-2022 走看看