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;
    }
  • 相关阅读:
    兄弟连新版ThinkPHP视频教程2.ThinkPHP 3.1.2 MVC模式和URL访问
    兄弟连新版ThinkPHP视频教程1.ThinkPHP 3.1.2 介绍及安装
    【算法】高效计算n的m次方
    linux下解压.zip压缩包出现乱码的问题解决
    马哥linux笔记--重定向
    JavaScript的基本知识
    repeater做删除前弹窗询问
    网页中图片路径错误时显示默认图片方法
    添加分页
    javascript类型转换
  • 原文地址:https://www.cnblogs.com/hellohell/p/6419006.html
Copyright © 2011-2022 走看看