zoukankan      html  css  js  c++  java
  • 二分查找、遍历文件夹算法

    1、二分查找

    假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。(数据量大的时候使用)

    //顺序查找
      function seq_search($arr,$n,$k)
      {
        $array[$n] = $k;
        for($i = 0;$i < $n; $i++)
        {
          if($arr[$i] == $k)
          {
            break;
          }
        }
     
        if($i < $n)
        {
          return $i;
        }
        else
        {
          return -1;
        }
      }

    2、遍历文件夹

    function my_scandir($dir)
      {
        $files = array();
        if($handle = opendir($dir))
        {
          while (($file = readdir($handle))!== false) 
          {
            if($file != '..' && $file != '.')
            {
              if(is_dir($dir."/".$file))
              {
                $files[$file]=my_scandir($dir."/".$file);
              }
              else
              {
                $files[] = $file;
              }
            }
          }
     
          closedir($handle);
          return $files;
        }
      }
     
      var_dump(my_scandir('../'));

    3、获取文件扩展名

    function getExt($url)
      {
        $arr = parse_url($url);//parse_url解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分
        //'scheme' => string 'http' (length=4)
        //'host' => string 'www.sina.com.cn' (length=15)
        //'path' => string '/abc/de/fg.php' (length=14)
        //'query' => string 'id=1' (length=4)
        $file = basename($arr['path']);// basename函数返回路径中的文件名部分
        $ext = explode('.', $file);
        return $ext[count($ext)-1];
      }
     
      print(getExt('http://www.sina.com.cn/abc/de/fg.html.php?id=1'));
  • 相关阅读:
    js中细小点
    被 idea 坑了的记录篇
    Spring 读写分离
    Java反射机制
    Spring AOP
    java Beanutils.copyProperties( )用法
    java List 数组删除元素
    java 中序列化(Serializable)
    webpack 入门
    使用zxing生成彩色或带图片的二维码
  • 原文地址:https://www.cnblogs.com/webclz/p/10727866.html
Copyright © 2011-2022 走看看