zoukankan      html  css  js  c++  java
  • php的排序算法

      *对于算法来说,对于每个小伙伴来说都是比较头疼的,但是,为什么要学习算法?

      算法是基础,算法能够提升智力,我想这两点就值得我们花时间去学习了。不要放弃,实在不会,先死记硬背下来,以后慢慢理解,一下是我自己的总结排序算法:

      1.冒泡排序(buttle Sort)

     1 function buttleSort($arr){
     2     for($i=0; $i<count($arr); $i++){
     3         for($j=0; $j<count($arr)-$i-1; $j++){
     4             if($arr[$j] > $arr[$j+1]){
     5                 $temp = $arr[$j];
     6                 $arr[$j] = $arr[$j+1];
     7                 $arr[$j+1] = $temp;
     8             }
     9         }
    10     }
    11     return $arr;
    12 }

      2.选择排序(select Sort)

     1 function selectionSort(){
     2     for($i=0; $i<count($arr)-1; $i++){
     3         $minIndex = $i;
     4         for($j=$i+1; $j<count($arr); $j++){
     5             if($arr[minIndex] > $arr[$j]){
     6                 $minIndex = $j;
     7             }
     8         }
     9         $temp = $arr[$i];
    10         $arr[$i] = $arr[$minIndex];
    11         $arr[$minIndex] = $temp;
    12     }
    13     return $arr;
    14 }

      3.插入排序(insert Sort)

          

     1 function insertionSort($arr){
     2   for($i=1; $i<count($arr); $i++){
     3     $preIndex = $i-1;
     4     $current = $arr[$i];  
     5     while($preIndex >= 0 && $arr[$preIndex] > $current){
     6       $arr[$preIndex+1] = $arr[$preIndex];
     7       $preIndex--;
     8     }
     9     $arr[$preIndex+1] = $current;
    10  }
    11  return $arr;
    12 }

      待续... ...


      1二分查找法:($arr是一个有序数列,返回$num在$arr中的索引值)

     1 function dichotomy($arr,$value){
     2     $min = 0;
     3     $max = count($arr) - 1; //5
     4     
     5     while(true){
     6         if($value > $arr[$max] || $value<$arr[$min]){
     7             return -1;
     8         }
     9         $cen = floor(($min+$max)/2);    
    10         if($value > $arr[$cen]){
    11             $min = $cen;
    12         }elseif($value < $arr[$cen]){
    13             $max = $cen;
    14         }else{
    15             return $cen;
    16         }
    17     }
    18 }

    ** 如果有什么问题 请评论中回复,我会即使回复.谢谢。。。。

    • 添加到短语集
       
      • 没有此单词集:中文(简体) -> 英语...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:英语 -> 中文(简体)...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:中文(简体) -> 英语...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:英语 -> 中文(简体)...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:中文(简体) -> 英语...
         
      • 创建新的单词集...
    • 拷贝
  • 相关阅读:
    Spark基本架构及原理
    深度剖析Spark分布式执行原理
    Spark的集群管理器
    基于Redis的开源分布式服务Codis
    RabbitMQ 概念
    分布式事务实现
    优酷 视频上传服务
    深入解析Java中volatile关键字的作用
    mysql in查询 结果乱序 引发的思考
    不安装oracle客户端,用plsql连接oracle
  • 原文地址:https://www.cnblogs.com/xuchuanbing/p/12145147.html
Copyright © 2011-2022 走看看