zoukankan      html  css  js  c++  java
  • php写的几种常见算法

    <?php
    $sort = [2, 4, 65, 3, 5, 24, 70, 6, 1];
    //$sort = bubble($sort);
    //$sort = ChoiceSort($sort);
    $sort = InsertSort($sort);
    print_r($sort);
    $len = count($sort);
    $index = search($sort, 65, 0, $len);
    print_r($index);die;
    /**
    * 冒泡排序
    * */
    function bubble(array $sort){
    $len = count($sort);
    for($i = 1; $i < $len; $i++){
    for($j = 0; $j < $len - $i; $j++){
    if($sort[$j] >= $sort[$j+1]){
    $tem = $sort[$j];
    $sort[$j] = $sort[$j+1];
    $sort[$j+1] = $tem;
    }

    }
    echo "第".$i."轮排序后的结果为:";
    print_r($sort);
    }
    return $sort;
    }

    /**
    * 选择排序
    * */
    function ChoiceSort(array $sort){
    $len = count($sort);
    for($i = 0; $i < $len - 1; $i ++){
    $min = $i;
    for($j = $i + 1; $j < $len; $j ++){
    if($sort[$min] > $sort[$j]){
    $min = $j;
    }
    }
    if($min != $i){
    $tem = $sort[$i];
    $sort[$i] = $sort[$min];
    $sort[$min] = $tem;
    echo "第".$i."轮排序后的结果为:";
    print_r($sort);
    }

    }
    return $sort;
    }

    /**
    * 插入排序
    * */
    function InsertSort($sort){
    $j = 0 ;
    $len = count($sort);
    for($i = 1; $i < $len; $i++){
    $tem = $sort[$i];
    $j = $i;
    while($j > 0 && $tem < $sort[$j - 1] ){
    $sort[$j] = $sort[$j - 1];
    $j --;
    }
    $sort[$j] = $tem;
    echo "第".$i."轮排序后的结果为:";
    print_r($sort);
    }
    return $sort;
    }

    /**

    *二分查找

    */
    function search($sort, $key, $start, $end){
    $mid = ($end - $start) / 2 + $start;
    if($key == $sort[$mid]){
    return $mid;
    }elseif ($start > $end) {
    // code...
    return -1;
    }else{
    if($key < $sort[$mid]){
    $end = $mid - 1;
    }
    if($key > $sort[$mid]){
    $start = $mid + 1;
    }
    return search($sort, $key, $start, $end);
    }
    return -1;
    }
    ?>

  • 相关阅读:
    JAVA泛类型(汽车Demo)
    java自定义事件机制分析
    ExtJS自定义事件
    模块化设计进化
    面向服务的SOA架构与服务总线ESB
    数据加密数字签名
    面试题
    一点ExtJS开发的感悟
    学习代理模式
    抽象类与接口
  • 原文地址:https://www.cnblogs.com/huangguojin/p/13030750.html
Copyright © 2011-2022 走看看