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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

PHP算法题:如何实现冒泡排序

發布時間:2023/11/28 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP算法题:如何实现冒泡排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法原理:

1.比較相鄰的元素,如果第一個比第二個大,那么就交換這兩個元素。

2.對每一對相鄰元素做同樣的工作,從第一對開始到最后一對結束,最后的元素應該會是最大的數。

3.除了最后一個元素外,針對其他的元素重復以上步驟。

4.對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較為止。

實現代碼:

<?phpheader("Content-type:text/html;charset=utf-8");// 性能最差的冒泡排序方法function maopao1($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];$arr[$k] = $arr[$k+1];$arr[$k+1] = $tmp;}}}return $arr;}// 性能最好的冒泡排序方法function maopao2($arr) {// 設置變量的初始值$low = 0;$high = count($arr) -1;while ($low < $high) {// 正向冒泡,找到最大值for ($j = $low; $j < $high; ++$j) {if ($arr[$j] > $arr[$j+1]) {$tmp = $arr[$j];$arr[$j] = $arr[$j+1];$arr[$j+1] = $tmp;}}--$high;// 放向冒泡,找到最小值for ($j = $high; $j > $low; --$j) {if ($arr[$j] < $arr[$j-1]) {$tmp = $arr[$j];$arr[$j] = $arr[$j-1];$arr[$j-1] = $tmp;}}++$low;}return $arr;}$arr = array(121,656,8997,11,56456,778,65454,314354,1121);echo "排序前:";foreach ($arr as $k => $val) {echo $val.' ';}echo "<br>方法一排序后:";$arr = maopao1($arr);foreach ($arr as $k => $val) {echo $val.' ';}echo "<br>方法二排序后:";$arr = maopao2($arr);foreach ($arr as $k => $val) {echo $val.' ';}
?>

?

總結

以上是生活随笔為你收集整理的PHP算法题:如何实现冒泡排序的全部內容,希望文章能夠幫你解決所遇到的問題。

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