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;
    }
  • 相关阅读:
    WSGI学习系列WSME
    Murano Weekly Meeting 2015.08.11
    Trace Logging Level
    OpenStack Weekly Rank 2015.08.10
    markdown语法测试集合
    css-定位
    html图像、绝对路径和相对路径,链接
    html块、含样式的标签
    html标题、段落、换行与字符实体
    html概述和基本结构
  • 原文地址:https://www.cnblogs.com/hellohell/p/6419006.html
Copyright © 2011-2022 走看看