• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 常见算法【冒泡排序, 快速排序, 插入排序, 取舍排序, 二分法查找, .】

php 搞代码 3年前 (2022-01-23) 17次浏览 已收录 0个评论

PHP 常见算法【冒泡排序, 快速排序, 插入排序, 选择排序, 二分法查找, ..】

// 冒泡排序function bubblesort($arr) {    for($i=0,$j=count($arr); $i$i; $k--) {            if ($arr[$k] < $arr[$k-1]) list($arr[$k-1], $arr[$k]) = array($arr[$k], $arr[$k-1]);        }     }    return $arr;}$arr = array(1,4,14,3,56,23,435,2,234,2,33,23,123);print_r(bubblesort($arr));
// 快速排序function quicksort($arr) {    if(($count = count($arr)) <= 1 ) return $arr;    $base = $arr[0];    $left = $right = array();    for($i=1; $i<$count; $i++) {        if($arr[$i] <= $base) $left[] = $arr[$i];        else $right[] = $arr[$i];    }    $left = quicksort($left);    $right = quicksort($right);    return array_merge($left, array($base), $right);}echo join(',', quicksort(array(1,3,23,5,234,65,6)));?
// 插入排序function insertsort($arr) {    for($i=1, $j=count($arr); $i 0 && $arr[$k-1] > $arr[$k]) {            list($arr[$k], $arr[$k-1]) = array($arr[$k-1], $arr[$k]);            $k--;        }    }    return $arr;}$array=array(10,8,7,5,1,2,3,4);print_r(insertsort($array));

?

// 选择排序, (非递归)function selectsort($arr) {    for($i=0, $j=count($arr); $i<=$j; $i++) {        $min = $i;        $temp = $arr[$i];        for($k=$i+1; $k $arr[$k]) {                $min = $k;                $temp = $arr[$k];            }        }         if($min != $i) list($arr[$min], $arr[$i]) = array($arr[$i], $arr[$min]);    }    return $arr;}$arr = array(9,3,11,23,90,99,12,34,22,87,32);print_r(selectsort($arr));

?

// 选择排序(递归实现)function selectsort2($arr, $start = 0) {    if(($count = count($arr)) == $start + 1) return $arr;    $new = array();    $min = $arr[$start];    $min_index = $start;    for($i=$start+1; $i<$count-1; $i++) {        if($arr[$i] < $min) {            $min = $arr[$i];            $min_index = $i;        }    }    if($arr[$start] != $min) list($arr[$start], $arr[$min_index]) = array($arr[$min_index], $arr[$start]);    return selectsort($arr, $start + 1);}$arr = array(9,3,11,23,90,99,12,34,22,87,32);print_r(selectsort($arr));

?

?

?

<?php// 二分法查找function binarysearch($arr, $value, $start = 0, $end = NULL) {    if($end == NULL) $end = count($arr) - 1;    $index = floor(($start+$end<div>……本2文来源gaodai.ma#com搞##代!^码@网3</div><code>搞代gaodaima码</code>)/2);    $base = $arr[$index];    if($value  $base) return binarysearch($arr, $value, $index+1, $end);    else return $index;}$arr = array(1, 3, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20);$value = 8;echo binarysearch($arr, $value);

?

待续…


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 常见算法【冒泡排序, 快速排序, 插入排序, 取舍排序, 二分法查找, .】

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址