溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP的簡易冒泡排序代碼分享

發(fā)布時間:2021-09-10 17:20:18 來源:億速云 閱讀:103 作者:chen 欄目:開發(fā)技術

這篇文章主要講解了“PHP的簡易冒泡排序代碼分享”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP的簡易冒泡排序代碼分享”吧!

復制代碼 代碼如下:


<?php
function BubbleSort($str){
for($i=0;$i<count($str);$i++){//從數(shù)組末尾取一個值;
for ($k=count($str)-2;$k>=$i;$k--){//將這個值向前冒泡;
if($str[$k+1]<$str[$k]){ //將小于號改為大于號,就是降序排列;
$tmp=$str[$k+1];
$str[$k+1]=$str[$k];
$str[$k]=$tmp;
}
}
}
return $str;
}
//以下是測試
$str=array(5,8,2,6,10,0,3,12,11);
print_r(BubbleSort($str));
?>


php 冒泡排序2
基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。重復以上過程,仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再小于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到最大數(shù)前的一對相鄰數(shù),將小數(shù)放前,大數(shù)放后,第二趟結束,在倒數(shù)第二個數(shù)中得到一個新的最大數(shù)。如此下去,直至最終完成排序。
  由于在排序過程中總是小數(shù)往前放,大數(shù)往后放,相當于氣泡往上升,所以稱作冒泡排序。
  用二重循環(huán)實現(xiàn),外循環(huán)變量設為i,內(nèi)循環(huán)變量設為j。外循環(huán)重復9次,內(nèi)循環(huán)依次重復 9,8,...,1次。每次進行比較的兩個元素都是與內(nèi)循環(huán)j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,...,9,對于每一個i, j的
值依次為1,2,...10-i。

復制代碼 代碼如下:


<?php
function asc($a)
{
for($i=0;$i<count($a)-1;$i++)
{
for($j=0;$j<count($a)-1;$j++)
{
if($a[$j]>$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$a = array(9,8,17,6,26,4,33,2,1);
print_r(asc($a));
?>
<br />
<?php
function desc($a)
{
$c=array();
for($i=count($a)-1;$i>0;$i--)
{
for($j=0;$j<count($a)-1;$j++)
{
if($a[$j]<$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$arr=array(33,24,56,55,59);
desc($arr);
?>&nbsp;


PHP冒泡排序法演示
以前面試的時候考官出的筆試題,覺得比較XX,寫程序應該是在計算機上面,而不是在筆頭上。
PHP程序文件sort_bubble_up.php

復制代碼 代碼如下:


<html>
<head><title>冒泡排序法演示</title><head>
<link rel="stylesheet" href="sort.css">
<body>
<h2>冒泡排序法演示</h2>
<table cellpadding="5" cellspacing="1" border="0" align="center">
<?php
//隨機生成數(shù)組
$arr=array();
echo '<tr><td colspan="10" class="title">初始值</td></tr>';
echo '<tr>';
for($i=0;$i<10;$i++){
$arr[$i]=rand();
echo "<td>\$arr[$i]={$arr[$i]}</td>";
}
//進行冒泡法排序
for($i=9;$i>0;$i--){
echo '<tr><td colspan="10" class="title">第'.(10-$i).'次</td></tr>';
for($j=0;$j<$i;$j++){
if($arr[$j]<$arr[$j+1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
echo '<tr>';
for($k=0;$k<10;$k++){
switch($k){
case $j : echo '<td class="base">'; break;
case $j+1 : echo '<td class="light">'; break;
default : echo '<td>';
}
echo "\$arr[$k]={$arr[$k]}</td>";
}
echo '</tr>';
}
}
//顯示排序結果
echo '<tr><td colspan="10" class="title">結果</td></tr>';
echo '<tr>';
for($i=0;$i<10;$i++){
echo "<td>\$arr[$i]={$arr[$i]}</td>";
}
echo '</tr>';
?>
</table>
</body></html>


樣式表文件sort.css

復制代碼 代碼如下:


h2{text-align: center; color: blue;}
table{font-size: 12px; font-family: arial; background-color: black; text-align: center;}
td{background-color: white;}
.base{background-color: #0FF;}
.light{background-color: #0DD;}
.title{background-color: #3FF; text-align: center;}

感謝各位的閱讀,以上就是“PHP的簡易冒泡排序代碼分享”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對PHP的簡易冒泡排序代碼分享這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

php
AI