php_桶(简易)排序,冒泡排序写法

来源:互联网 发布:电脑ie卸载软件 编辑:程序博客网 时间:2024/05/20 02:30

排序在我们生活中很常见,许多东西都需要排序,所以就有许多算法来排序了。

  1.简易桶排序

<?php

//随便定义一个数组,即要排序的数

$arr=array(5,8,1,3,9);

function tong($arr){

//定义一个数组当做桶,定义的数组一定要比排序数的最大数大

$a=array(0,1,2,3,4,5,6,7,8,9,10);

//统计这个数组中数的个数

$l=count($arr);

//把数组初始化为0

for($i=0;$i<=$l;$i++){

$a[$i]=0;

}

//给数组重新赋值,$arr里出现的数与$a里的索引相对应

foreach($arr as $v){

$t=$v;

//$arr数组里出现的数,$a数组里的索引对应值就要输出多少次,所以自增  ++

$a[$t]++;

}

for($i=0;$i<=$l;$i++){

//$j=1是因为,$a中索引值>=1的是我们想要输出的

for($j=1;$j<$arr[$i];$j++){

echo $i;

}

}

}




2.冒泡排序

<?php

$arr=array(9,85,65,12,3,8,13);

function fast($arr){

//统计数组的长度

$l=count($arr);

//外层循环就是数组有多少个数我就要把这个数组遍历多少次,每一次里层循环排好序的数组

for($i=0;$i<$l;$i++){

//里层循环就是为了进行排序,$l-1是因为冒泡排序法只要比较$l-1次

for($j=0;$j<$l-1;$j++){

//如果相邻数不比它后面的数小就不用排序,如果小后面的数会出现在前面的位置

if($arr[$j]<$arr[$j+1]){

$t=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$t;

}

}

}

var_dump($arr);

}











原创粉丝点击