导航:首页 > 编程语言 > php数组冒泡排序

php数组冒泡排序

发布时间:2023-02-18 04:46:41

php二维数组如何冒泡排序对角输出

将一维数组的改一下就可以了
假设数组是a[m][n],可以用下面的方法
for(pass=1;pass<m*n;pass++)
{
for(i=0;i<m*n-1;i++)
{
if(a[i/n][i%n]>a[(i+1)/n][(i+1)%n])
{
hold=a[i/n][i%n];
a[i/n][i%n]=a[(i+1)/n][(i+1)%n];
a[(i+1)/n][(i+1)%n]=hold;
}
}
}
其实是做了一个二维和一维间的一一映射

❷ 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;
}

网页链接

❸ 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.

❹ 编写函数用冒泡排序法对数组中的n个数据进行从小到大的排序。

1、新建一个163.php。

❺ 一帖看懂PHP面试必考题:什么是冒泡排序

//首先定义一个数组;
<?php
$arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588);
// 计算数组的长度;
$n =count($arr);
// 外层循环n-1
for($h=0;$h<$n-1;$h++){
//内层循环n-h-1
for($i=0;$i<$n-$h-1;$i++){
//判断数组大小,颠倒位置(从小往大排序,还是从大往小)
if($arr[$i]>$arr[$i+1]){
//定义空容器$kong,然后将两个判断中大的装进去
$kong=$arr[$i+1];
//大的这时就空了,然后将小的装进去
$arr[$i+1]=$arr[$i];
//然后将小的在装到空的进去。这就实现了从小往大排序,从大往小与此相反
$arr[$i]=$kong; }
}}
最后运行结果如下:
php编程冒泡排序
完整代码粘贴如下:
//冒泡排序
$arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588);
$n =count($arr);
//echo $n;
for($h=0;$h<$n-1;$h++){//外层循环n-1
for($i=0;$i<$n-$h-1;$i++){
if($arr[$i]>$arr[$i+1]){//判断数组大小,颠倒位置
$kong=$arr[$i+1];
$arr[$i+1]=$arr[$i];
$arr[$i]=$kong;
}
}
}
var_mp($arr);

❻ 用PHP写冒泡排序法

function bubble_sort($array)
{
$count = count($array);
if($count <= 0)
{
return false;
}
for($i=0; $i<$count; $i++)
{
for($k=$count-1; $k>$i; $k--)
{
if($array[$k] < $array[$k-1])
{
$tmp = $array[$k];
$array[$k] = $array[$k-1];
$array[$k-1] = $tmp;
}
}
}
return $array;
}
$arr = array(3, 5, 1, 4, 2);
$s = bubble_sort($arr);
print_r($s);

拿去改吧

❼ 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实现常见排序

//插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i= ; $i<$count; $i++){ $tmp = $arr[$i]; $j = $i ; while($arr[$j] > $tmp){ $arr[$j+ ] = $arr[$j]; $arr[$j] = $tmp; $j ; } } return $arr; } //选择排序(一维数组) function select_sort($arr){ $count = count($arr); for($i= ; $i<$count; $i++){ $k = $i; for($j=$i+ ; $j<$count; $j++){ if ($arr[$k] > $arr[$j]) $k = $j; if ($k != $i){ $tmp = $arr[$i]; $arr[$i] = $arr[$k]; $arr[$k] = $tmp; } } } return $arr; } //冒泡排序(一维数组) function bubble_sort($array){ $count = count($array); if ($count <= ) return false; for($i= ; $i<$count; $i++){ for($j=$count ; $j>$i; $j ){ if ($array[$j] < $array[$j ]){ $tmp = $array[$j]; $array[$j] = $array[$j ]; $array[$j ] = $tmp; } } } return $array; } //快速排序(一维数组) function quick_sort($array){ if (count($array) <= ) return $array; $key = $array[ ]; $left_arr = array(); $right_arr = array(); for ($i= ; $i<count($array); $i++){ if ($array[$i] <= $key) $left_arr[] = $array[$i]; else $right_arr[] = $array[$i]; } $left_arr = quick_sort($left_arr); $right_arr = quick_sort($right_arr); return array_merge($left_arr array($key) $right_arr); } lishixin/Article/program/PHP/201311/21194

❾ PHP实现常见的排序算法

注:为方便描述,下面的排序全为正序(从小到大排序)

假设有一个数组[a,b,c,d]
冒泡排序依次比较相邻的两个元素,如果前面的元素大于后面的元素,则两元素交换位置;否则,位置不变。具体步骤:
1,比较a,b这两个元素,如果a>b,则交换位置,数组变为:[b,a,c,d]
2,比较a,c这两个元素,如果a<c,则位置不变,数组变为:[b,a,c,d]
3,比较c,d这两个元素,如果c>d,则交换位置,数组变为:[b,a,d,c]
完成第一轮比较后,可以发现最大的数c已经排(冒)在最后面了,接着再进行第二轮比较,但第二轮比较不必比较最后一个元素了,因为最后一个元素已经是最大的了。
第二轮比较结束后,第二大的数也会冒到倒数第二的位置。
依次类推,再进行第三轮,,,
就这样最大的数一直往后排(冒),最后完成排序。所以我们称这种排序算法为冒泡排序。

选择排序是一种直观的算法,每一轮会选出列中最小的值,把最小值排到前面。具体步骤如下:

插入排序步骤大致如下:

快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。

步骤:
从数列中挑出一个元素,称为 “基准”(pivot),
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

❿ php数组从大到小排序谁帮忙想下感谢

你好,建议使用冒泡排序法,这样看上去比较清楚明了,你这样编写就比较复杂了。

阅读全文

与php数组冒泡排序相关的资料

热点内容
usb蓝牙android 浏览:405
服务器显示error1什么意思 浏览:708
python代码精简 浏览:457
文件加密了怎么找到了 浏览:193
jellyfin插件怎么选择主服务器 浏览:836
asp用户注册源码 浏览:48
什么是照片压缩文件 浏览:392
java调用js代码 浏览:979
昆山市民app怎么修改身份信息 浏览:779
php登陆次数 浏览:744
python字符转成数字 浏览:822
海川用的是什么服务器 浏览:376
口才是练出来的pdf 浏览:458
云服务器哪个公司性价比高 浏览:517
源码论坛打包 浏览:558
php怎么做成word 浏览:692
python批量生成密钥 浏览:492
程序员要不要考社区人员 浏览:150
app的钱怎么充q币 浏览:814
android银行卡识别 浏览:756