本文目录一览:
php冒泡排序怎么排?
按照你的要求,编写的冒泡排序的PHP程序如下
(注意因为键的值是字符串类型,所以按照字符大小从小到大排序)
原理是把键值对数组拆成键值的二维数组,然后根据值排序,最后再组装成键值对数组
?php
$a=Array("a"="107","b"="5448","c"="522");
foreach($a as $k=$v) $d[] = array($k, $v);
for($i=0;$icount($d)-1;$i++){
for($j=0;$jcount($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_dump($arr);
?
php二维数组如何冒泡排序对角输出
将一维数组的改一下就可以了
假设数组是a[m][n],可以用下面的方法
for(pass=1;passm*n;pass++)
{
for(i=0;im*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二维数组排序
$ary=array(array("ID"=21,"name"="kitty"),array("ID"=22,"name"="sony"),array("ID"=17,"name"="picker"));
for($i=0; $icount($ary) ;$i++){
for($j=0; $j$i; $j++){
if($ary[$i]['ID'] $ary[$j]['ID']){
$temp = $ary[$i]['ID'];
$ary[$i]['ID'] = $ary[$j]['ID'];
$ary[$j]['ID'] = $temp;
}
}
}
用PHP如何实现冒泡排序
?php //冒泡排序方法 function bubblesort($arr){
//定义一个变量保存交换的值
$temp =0;
for($i=0;$icount($arr);$i++){
for($j=0;$jcount($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);
//数组是值传递,所以传递的时候加个符号就是地址传递,改变外部变量?
二维数组如何冒泡排序???
将一维数组的改一下就可以了
假设数组是a[m][n],可以用下面的方法
for(pass=1;passm*n;pass++)
{
for(i=0;im*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冒泡排序法。
前台输入部分我就不写了,管你是用字符串形式一起传到后台还是说先用js存储了再提交到后台,总之假设你前天都获得了一个一维数组,这里给一个从大到小,一个从小到大的写法:
从大到小:
?php
/**
* 冒泡排序算法示例
*/
// 这里以一维数组做演示
$demo_array = array(23,15,43,25,54,2,6,82,11,5,21,32,65);
// 第一层for循环可以理解为从数组中键为0开始循环到最后一个
for ($i=0;$icount($demo_array);$i++) {
// 第二层将从键为$i的地方循环到数组最后
for ($j=$i+1;$jcount($demo_array);$j++) {
// 比较数组中相邻两个值的大小
if ($demo_array[$i] $demo_array[$j]) {
$tmp = $demo_array[$i]; // 这里的tmp是临时变量
$demo_array[$i] = $demo_array[$j]; // 第一次更换位置
$demo_array[$j] = $tmp; // 完成位置互换
}
}
}
// 打印结果集
echo 'pre';
var_dump($demo_array);
echo '/pre';
从小到大:
?php
/**
* 冒泡排序算法示例
*/
// 这里以一维数组做演示
$demo_array = array(23,15,43,25,54,2,6,82,11,5,21,32,65);
// 第一层for循环可以理解为从数组中键为0开始循环到最后一个
for ($i=0;$icount($demo_array);$i++) {
// 第二层将从键为$i的地方循环到数组最后
for ($j=$i+1;$jcount($demo_array);$j++) {
// 比较数组中相邻两个值的大小
if ($demo_array[$i] $demo_array[$j]) {
$tmp = $demo_array[$i]; // 这里的tmp是临时变量
$demo_array[$i] = $demo_array[$j]; // 第一次更换位置
$demo_array[$j] = $tmp; // 完成位置互换
}
}
}
// 打印结果集
echo 'pre';
var_dump($demo_array);
echo '/pre';
主要的代码已经给你写出来了,你自己把前端部分加上就行了