zoukankan      html  css  js  c++  java
  • php 实现四种排序两种查找

    function bubbleSort($arr)
    {
    $len = count($arr);
    if($len<=1)
    {
    return $arr;
    }
    for ($i=0;$i<$len;$i++)
    {
    for ($j=1;$j<$len-$i;$j++)
    {
    if($arr[$j-1]>$arr[$j])
    {
    $tmp = $arr[$j];
    $arr[$j] = $arr[$j-1];
    $arr[$j-1] = $tmp;
    }
    }
    }
    return $arr;

    }

    function selectSort($arr)
    {
    $len = count($arr);
    for($i=0;$i<$len;$i++)
    {
    for($j = $i+1;$j<$len;$j++)
    {
    if($arr[$i]>$arr[$j])
    {
    $tmp = $arr[$j];
    $arr[$j] = $arr[$i];
    $arr[$i] = $tmp;
    }
    }
    }
    }

    function insertSort($arr)
    {
    $len = count($arr);
    for($i=1; $i<$len; $i++)
    {
    for ($j = $i-1;$j>=0;$j--)
    {
    if($arr[$i]>$arr[$j])
    {
    $tmp = $arr[$j];
    $arr[$j] = $arr[$i];
    $arr[$i] = $tmp;
    }
    }
    }
    return $arr;
    }

    function quickSort($arr)
    {
    $len = count($arr);
    if($len <=1 )
    {
    return $arr;
    }
    $base = $arr[0];
    $left_arr = [];
    $right_arr = [];
    for($i=1;$i<$len;$i++)
    {
    if($base>$arr[$i])
    {
    $left_arr[] = $arr[$i];
    }
    else
    {
    $right_arr[] = $arr[$i];
    }
    }
    $left_arr = $this->quick_sort($left_arr);
    $right_arr = $this->quickSort($right_arr);

    return array_merge($left_arr,array($base),$right_arr);
    }

    function halfSearch($arr, $search_val)
    {
    $low = 0;
    $high = count($arr)-1;
    while($low <= $high)
    {
    if($arr[ceil(($low+$high)/2)] < $search_val)
    {
    $low = ceil(($low+$high)/2)+1;
    }
    elseif($arr[ceil(($low+$high)/2)] > $search_val)
    {
    $high = ceil(($low+$high)/2)-1;
    }
    else
    {
    return $arr[ceil(($low+$high)/2)];
    }
    }
    return false;
    }

    function strMatch($str, $par)
    {
    for($i=0;$i<strlen($str);$i++)
    {
    $match =$i;
    $j = 0;
    while($i<strlen($str) && $j<strlen($par) && $par[$j] == $str[$match])
    {
    $match++;
    $j++;
    }
    if($j == strlen($par)) return $match - $j;
    }
    return false;
    }
  • 相关阅读:
    一个简单的window.onscroll实例
    vue 自定义组件使用v-model
    vue开发后台管理系统有感
    cube打包后css顺序错误
    app嵌套的vue项目更新后,页面没有更新
    vue打包后css背景图片地址找不到
    git取消操作命令
    cube-ui indexList的正确使用
    首次db查询时延迟明显高于后面几次。
    git中的merge与rebase
  • 原文地址:https://www.cnblogs.com/hellohell/p/6419006.html
Copyright © 2011-2022 走看看