zoukankan      html  css  js  c++  java
  • php常用的数据结构算法

    <?  
    //--------------------  
    // 基本数据结构算法 
    //--------------------  
    //二分查找(数组里查找某个元素)  
    

       $array = [1,3,6,9,13,1,63,65,69,70,71,73,75,76,77,79,89];

       $target = 73;//查找的数

       $low = 0;

       $high = count($array)-1;//数值长度

       function bin_search($array, $low, $high, $target){

        if ( $low <= $high){

          $mid = intval(($low+$high)/2 );

          if ($array[$mid] == $target){
           return $mid;

          }elseif ( $target < $array[$mid]){

            return bin_search($array, $low, $mid-1, $target);

          }else{

           return bin_search($array, $mid+ 1, $high, $target);

      }

     }

      return false;

    }

    
    

    $find = bin_search($array, $low, $high, $target);

    var_dump($find);
    //显示结果 12
    //顺序查找(数组里查找某个元素) function seq_sch($array, $n, $k){ $array[$n] = $k; for($i=0; $i<$n; $i++){ if( $array[$i]==$k){ //找到相同的值就会终止循环 break; } } if($i<$n){ return $i; }else{ return -1; //没有匹配的数值 } }
    $arr=[1,5,3,6,4,7,11,15,18];
    $n =count($arr);
    $k =6;
    var_dump(seq_sch($arr,$n,$k));
    结果: 3;
    

      

    //线性表的删除(数组中实现)  
    function delete_array_element($array , $i) 
    {  
           $len =  count($array);  
           for ($j= $i; $j<$len; $j ++){ 
                  $array[$j] = $array [$j+1];  //把需要删除的数的位置,开始,把后边的值覆盖到前面上来
           }  
           array_pop ($array); //清楚最后一个多余的字段 
           return $array ;  
    } 
    $arr =[1,5,7,11];
    $i =1;
    var_dump(delete_array_element($arr,$i));
    
    集合:[1,7,11];
    //冒泡排序(数组排序)  
    function bubble_sort( $array) { 
      $count = count( $array);
      if ($count <= 0 ) 
       return false; 
      for($i=0 ; $i<$count; $i ++){//循环对比的轮数
         for($j=$count-1 ;$j>$i; $j--){ //当前轮相邻元素循环对比
            if($array[$j] < $array [$j-1]){ //如果前面的大于后面的
    $tmp = $array[$j]; //交换
    $array[$j] = $array[ $j-1];
    $array[$j-1] = $tmp;
    }
    }
    }
    //逻辑: 选择一个参考数
    return $array; }
    $arr =[1,5,8,2,87,16];
    var_dump(bubble_sort($arr));
    $arr =[1,2,5,8,16,87];
    //快速排序(数组排序)  
    function quick_sort($array ) {  
           if (count($array) <= 1) return $array;  
           $key = $array [0];  
           $left_arr  = array(); 
           $right_arr = array();  
           for ($i= 1; $i<count($array );$i++){  
                  if ($array[ $i]<= $key)  
                         $left_arr[] = $array[$i];  
                  else  
                         $right_arr[] = $array[$i ]; 
           }  
           $left_arr = quick_sort($left_arr ); 
           $right_arr = quick_sort( $right_arr); 
           return array_merge($left_arr , array($key),$right_arr);  
    } 
    //快速排序(数组排序)  
    function quick_sort($array ) {  
           if (count($array) <= 1) 
               return $array;  
           $key = $array [0];  //第一个值
           $left_arr  = array(); //左数组
           $right_arr = array(); //右数组
           for ($i= 1; $i<count($array );$i++){  
                  if ($array[ $i]<= $key)  
                         $left_arr[] = $array[$i];  
                  else  
                         $right_arr[] = $array[$i ]; 
           }  
           $left_arr = quick_sort($left_arr ); 
           $right_arr = quick_sort( $right_arr); 
           return array_merge($left_arr , array($key),$right_arr);  
    }
    
    $arr =[1,5,3,7,55,34];
    var_dump(quick_sort($arr));
    $arr =[1,3,5,7,34,55];
  • 相关阅读:
    【大数据应用技术】作业十二|Hadoop综合大作业
    【大数据应用技术】作业十一|分布式并行计算MapReduce
    【大数据应用技术】作业十|分布式文件系统HDFS 练习
    【大数据应用技术】作业九|安装关系型数据库MySQL 安装大数据处理框架Hadoop
    【大数据应用技术】作业八|爬虫综合大作业(上)
    【大数据应用技术】作业七|爬取全部的校园新闻
    【大数据应用技术】作业六|获取一篇新闻的全部信息
    【大数据应用技术】作业五|理解爬虫原理
    【大数据应用技术】作业四|中文词频统计
    大数据应用期末总作业
  • 原文地址:https://www.cnblogs.com/kevin-yang123/p/14395830.html
Copyright © 2011-2022 走看看