冒泡排序PHP实现
2014-10-26 01:09
330 查看
$arr = array(1, 23, 2, 15, 99, 16, 99999, 45, 100, 25, 6, 322);
function sortarr($arr) {
$len = count($arr);
/*for ($i = 0; $i < $len - 1; $i++) { //从左开始往右。小的留在左边。(留住)
for ($j = $i + 1; $j < $len; $j++) {
if ($arr[$i] < $arr[$j]) {
$ano = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $ano;
}
}
}*/
for ($i = 0; $i < $len; $i++) { //从左开始往右。大的往右挪。(浮动)
for ($j = 0; $j < $len-$i-1; $j++) {
if ($arr[$j] > $arr[$j+1]) {
$ano = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $ano;
}
}
}
/*for ($i = 0; $i < $len - 1; $i++) { //从右边开始往左。把大的往前挪。(浮动)
for ($j = $len - 1 ; $j > $i; $j--) {
if ($arr[$j] > $arr[$j-1]) {
$ano = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $ano;
}
}
}*/
/*for ($i = 1; $i < $len; $i++) { //从右开始往左。把小的留住。(留住)
for ($j = $len-$i-1; $j >= 0; $j--) {
if ($arr[$len-$i] > $arr[$j]) {
$ano = $arr[$len-$i];
$arr[$len-$i] = $arr[$j];
$arr[$j] = $ano;
}
}
}*/
foreach ($arr as $value) {
echo $value.' ';
}
}
sortarr($arr);
留住:两个对比的数的标记,一个固定,一个移动。
浮动:两个对比的数的标记都同时移动。
标记可以理解为指向对应变量的一个箭头。轮到谁指向谁。
例如:从左边开始,用留住的,则是左边那个固定,右边的往右移。
从右边开始,用浮动的,则是左右两个同时向左移动。
从左边开始考虑用留住。
从右边开始考虑用浮动。
?时间和空间复杂度?
function sortarr($arr) {
$len = count($arr);
/*for ($i = 0; $i < $len - 1; $i++) { //从左开始往右。小的留在左边。(留住)
for ($j = $i + 1; $j < $len; $j++) {
if ($arr[$i] < $arr[$j]) {
$ano = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $ano;
}
}
}*/
for ($i = 0; $i < $len; $i++) { //从左开始往右。大的往右挪。(浮动)
for ($j = 0; $j < $len-$i-1; $j++) {
if ($arr[$j] > $arr[$j+1]) {
$ano = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $ano;
}
}
}
/*for ($i = 0; $i < $len - 1; $i++) { //从右边开始往左。把大的往前挪。(浮动)
for ($j = $len - 1 ; $j > $i; $j--) {
if ($arr[$j] > $arr[$j-1]) {
$ano = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $ano;
}
}
}*/
/*for ($i = 1; $i < $len; $i++) { //从右开始往左。把小的留住。(留住)
for ($j = $len-$i-1; $j >= 0; $j--) {
if ($arr[$len-$i] > $arr[$j]) {
$ano = $arr[$len-$i];
$arr[$len-$i] = $arr[$j];
$arr[$j] = $ano;
}
}
}*/
foreach ($arr as $value) {
echo $value.' ';
}
}
sortarr($arr);
留住:两个对比的数的标记,一个固定,一个移动。
浮动:两个对比的数的标记都同时移动。
标记可以理解为指向对应变量的一个箭头。轮到谁指向谁。
例如:从左边开始,用留住的,则是左边那个固定,右边的往右移。
从右边开始,用浮动的,则是左右两个同时向左移动。
从左边开始考虑用留住。
从右边开始考虑用浮动。
?时间和空间复杂度?
相关文章推荐
- 数据结构复习笔记:使用PHP实现内排序之冒泡排序和简单选择排序
- PHP 实现冒泡排序
- 冒泡排序(PHP实现)
- php实现冒泡排序
- php实现排序算法(一) 冒泡排序 快速排序
- 冒泡排序的PHP实现
- PHP实现冒泡排序的简单实例
- PHP实现冒泡排序
- 用PHP实现冒泡排序(从小到大)
- php实现冒泡排序,选择排序,插入排序和快速排序
- PHP 实现冒泡排序
- PHP实现冒泡排序、双向冒泡排序算法
- PHP实现冒泡排序、双向冒泡排序算法
- 排序算法之冒泡排序 C++和PHP实现
- PHP实现插入排序,选择排序,冒泡排序和快速排序
- PHP 实现冒泡排序
- php中实现快排与冒泡排序
- C 和PHP 实现 冒泡排序
- php实现冒泡排序
- PHP实现冒泡排序