php冒泡排序
❶ 關於php冒泡排序法。
你的那個asort函數裡面實現的就是類似他寫的冒泡演算法,排序演算法有很多種。他只是用了自己寫冒泡演算法而已。沒有像你使用了php自帶的排序函數。
❷ 用PHP如何實現冒泡排序
<?php//冒泡排序方法functionbubblesort(&$arr){
//定義一個變數保存交換的值
$temp=0;
for($i=0;$i<count($arr);$i++){
for($j=0;$j<count($arr)-$i-1;$j++){
if($arr[$j]>$arr[$j+1]){
//如果前面的那個數大於後面的那個數,那麼他們就進行交換
$temp=$arr[$j];$arr[$j]=$arr[$j+1];$arr[$j+1]=$temp;
}
}
}
}
$arr=array(100,99,200,5,-4,6,-7);
bubbleSort($arr);
print_r($arr);
//數組是值傳遞,所以傳遞的時候加個&符號就是地址傳遞,改變外部變數?>
❸ php冒泡排序 只能是升序嗎
冒泡排序實現原理
① 首先將所有待排序的數字放入工作列表中。
② 從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。
③ 重復步驟②,直至再也不能交換。
代碼實現
代碼如下:
<?php
function bubbingSort(array $array)
{
for($i=0, $len=count($array)-1; $i<$len; ++$i)
{
for($j=$len; $j>$i; --$j)
{
if($array[$j] < $array[$j-1])
{
$temp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $temp;
}
}
}
return $array;
}
print '<pre>';
print_r(bubbingSort(array(1,4,22,5,7,6,9)));
print '</pre>';
快速排序實現原理
採用分治的思想:先保證列表的前半部分都小於後半部分,然後分別對前半部分和後半部分排序,這樣整個列表就有序了。
❹ 用php程序編寫冒泡排序、快速排序
<?php
function maopao($arr){
$n=count($arr); //計算數組元素個數
for($i=0;$i<=$n;$i++){
for($j=$n-2;$j>=$i;$j--){
if($arr[$j+1]<=$arr[$j]){
$tmp=$arr[$j+1];
$arr[$j+1]=$arr[$j];
$arr[$j]=$tmp;
}
}
}
$arr=implode(",",$arr); //把數組切割為字元串
return $arr; //返回函數值
}
$arr=array(1,22,31,4,65,40,34,43,234);
$arr2=maopao($arr); //函數傳值
print_r($arr2);
?>
❺ php冒泡排序怎麼排
按照你的要求,編寫的冒泡排序的PHP程序如下
(注意因為鍵的值是字元串類型,所以按照字元大小從小到大排序)
原理是把鍵值對數組拆成鍵值的二維數組,然後根據值排序,最後再組裝成鍵值對數組
<?php
$a=Array("a"=>"107","b"=>"5448","c"=>"522");
foreach($a as $k=>$v) $d[] = array($k, $v);
for($i=0;$i<count($d)-1;$i++){
for($j=0;$j<count($d)-1-$i;$j++){
if($d[$j][1]>$d[$j+1][1]){
$temp=$d[$j];
$d[$j]=$d[$j+1];
$d[$j+1]=$temp;
}
}
}
$arr = array();
foreach($d as $v) $arr[$v[0]] = $v[1];
var_mp($arr);
?>
❻ PHP 冒泡排序
代碼修改好了 你看一下吧 你的錯誤出現在下面代碼的8-15行
1 <?php
2 function maopao($arr)
3 {
4 $i=0 ;
5 $j=0 ;
6 $temp=0 ;
7 for($i=0;$i<=9;$i++)
8 {
9 for($j=$i;$j<=9;$j++)
10 {
11 if($arr[$i]>$arr[$j])
12 {
13 $temp=$arr[$i];
14 $arr[$i]=$arr[$j];
15 $arr[$j]=$temp;
16 }
17 }
18 }
19 return $arr;
20 }
21 $arr = array(2,1,4,3,6,8,7,9,0,5);
22 $arr2= maopao($arr);
23 $arr2=implode(",",$arr2);
24 print_r($arr2);
❼ php冒泡排序3,6,1,5,9,0,4,6,7,13,15從小到大排序
<?php
function paixu($str)
{
$n=count($str);
for ($i=0;$i<$n;$i++)
{
for ($j=$n-2;$j>=$i;$j--)
{
if($str[$j+1]<$str[$j])
{
$tmp = $str[$j+1];
$str[$j+1]=$str[$j];
$str[$j]=$tmp;
}
}
}
$str=implode(",",$str);
return $str;
}
$str = array(3,6,1,5,9,0,4,6,7,13,15);
print_r(paixu($str));
?>
❽ php關於冒泡排序的正確與否。
$ar=array("1","2","6","4","4");
functionbubble1($ar){
$len=count($ar);
if($len>1){
for($i=0;$i<$len;$i++){
for($j=$len-1;$j>$i;$j--){
if($ar[$j-1]>$ar[$j]){
$tmp=$ar[$j];
$ar[$j]=$ar[$j-1];
$ar[$j-1]=$tmp;
}
}
}
}
return($ar);
}
var_mp(bubble1($ar));
php的變數必須加$,列印語句有很多,如:echo,print,print_r等,我比較喜歡var_mp.
❾ php冒泡排序法~呢
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
functiongetpao($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;
}
網頁鏈接