PHP 学习:PHP 的简易冒泡法代码
基础的东西,感觉代码还不够简洁,希望高手指导修改,脚本之家特为大家多准备了几个,
方便测试
代码如下
:
<?php
function
BubbleSort(
$str
){
for
(
$i
=0;
$i
<
count
(
$str
);
$i
++){
//从数组末尾取一个值;
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
基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第
1 个
和第
2 个数,将小数放前,大数放后。然后比较第 2 个数和第 3 个数,将小数放前,大数放
后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对
数开始比较(因为可能由于第
2 个数和第 3 个数的交换,使得第 1 个数不再小于第 2 个
数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放
后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡
排序。
用二重循环实现,外循环变量设为
i,内循环变量设为 j。外循环重复 9 次,内循环依次
重复
9,8,...,1 次。每次进行比较的两个元素都是与内循环 j 有关的,它们可以分别用 a[j]
和
a[j+1]标识,i 的值依次为 1,2,...,9,对于每一个 i, j 的
值依次为
1,2,...10-i。
代码如下
:
<?php
function
asc(
$a
)
{