日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】

發布時間:2024/9/27 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了php各種常見經典算法。分享給大家供大家參考,具體如下:

冒泡排序算法

public function test() {

$arr = array(43, 54, 62, 21, 66, 32, 78, 36, 76, 39);

var_dump($arr);

echo '
';

$arr = $this->bubblesort($arr);

var_dump($arr);

}

public function bubblesort($arr) {

$len = count($arr);

//該層循環控制 需要冒泡的輪數

for ($i = 1; $i < $len; $i++) {

//該層循環用來控制每輪 冒出一個數 需要比較的次數

for ($k = 0; $k < $len - $i; $k++) {

if ($arr[$k] > $arr[$k + 1]) {

$tmp = $arr[$k + 1]; // 聲明一個臨時變量

$arr[$k + 1] = $arr[$k];

$arr[$k] = $tmp;

}

}

}

return $arr;

}

快速排序

public function quick_sort($arr) {

//先判斷是否需要繼續進行

$length = count($arr);

if ($length <= 1) {

return $arr;

}

$base_num = $arr[0]; //選擇一個標尺 選擇第一個元素

//初始化兩個數組

$left_array = array(); //小于標尺的

$right_array = array(); //大于標尺的

for ($i = 1; $i < $length; $i++) { //遍歷 除了標尺外的所有元素,按照大小關系放入兩個數組內

if ($base_num > $arr[$i]) {

//放入左邊數組

$left_array[] = $arr[$i];

} else {

//放入右邊

$right_array[] = $arr[$i];

}

}

//再分別對 左邊 和 右邊的數組進行相同的排序處理方式

//遞歸調用這個函數,并記錄結果

$left_array = $this->quick_sort($left_array);

$right_array = $this->quick_sort($right_array);

//合并左邊 標尺 右邊

return array_merge($left_array, array($base_num), $right_array);

}

public function test() {

$arr = array(4, 3, 1, 2, 8, 9);

var_dump($arr);

echo '
';

$arr = $this->quick_sort($arr);

var_dump($arr);

}

二分查找

public function bin_search($arr, $low, $high, $k) {

if ($low <= $high) {

$mid = intval(($low + $high) / 2);

if ($arr[$mid] == $k) {

return $mid;

} else if ($k < $arr[$mid]) {

return $this->bin_search($arr, $low, $mid - 1, $k);

} else {

return $this->bin_search($arr, $mid + 1, $high, $k);

}

}

return -1;

}

public function test() {

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

var_dump($arr);

echo '
';

$arr = $this->bin_search($arr, 0, 8, 4);

var_dump($arr);

}

順序查找

public function seq_search($arr, $n, $k) {

$array[$n] = $k;

for ($i = 0; $i < $n; $i++) {

if ($arr[$i] == $k) {

break;

}

}

if ($i < $n) {

return $i;

} else {

return -1;

}

}

public function test_suanfa() {

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

var_dump($arr);

echo '
';

$arr = $this->seq_search($arr, 4, 4);

var_dump($arr);

}

線性表的刪除

public function delete_array_element($array, $i) {

$len = count($array);

for ($j = $i; $j < $len; $j ++) {

if (isset($array[$j + 1])) {

$array[$j] = $array[$j + 1];

}

}

array_pop($array);

return $array;

}

public function test() {

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

var_dump($arr);

echo '
';

$arr = $this->delete_array_element($arr, 4);

var_dump($arr);

}

字符串翻轉

public function strrev($str) {

$rev_str = '';

if ($str == '') {

return 0;

}

for ($i = (strlen($str) - 1); $i >= 0; $i --) {

$rev_str .= $str[$i];

}

return $rev_str;

}

public function test() {

$arr = 'hellow wolrd';

var_dump($arr);

echo '
';

$arr = $this->strrev($arr);

var_dump($arr);

}

希望與廣大網友互動??

點此進行留言吧!

總結

以上是生活随笔為你收集整理的翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。