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;
}
网页链接