PHP 排序算法

冒泡法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//冒泡排序
function maopao( $arr )
{
     $n = count ( $arr );
     for ( $j =0; $j < $n -1; $j ++)
     {
         for ( $i = $j +1; $i <= $n -1; $i ++) {
                   if ( $arr [ $j ]> $arr [ $i ])
             {
                 $t = $arr [ $i ];
                 $arr [ $i ] = $arr [ $j ];
                 $arr [ $j ]= $t ;
             }
         }
     }
     return $arr ;
}
$arr = array (1,5,4,7,3,2);
print_r( $arr );

快速排序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//快速排序
function quick( $array )
{
     if ( count ( $array )<=1)
     {
         return $array ;
     }
     $key = $array [0];
     $l = array ();
     $r = array ();
     for ( $i =1; $i {
         if ( $array [ $i ]<= $key )
         {
             $l [] = $array [ $i ];
         }
         else
         {
             $r [] = $array [ $i ];
         }
     }
 
     $l = quick( $l );
     $r = quick( $r );
return array_merge ( $l , array ( $key ), $r );
}
$array = array (2,5,3,4,1);
print_r(quick( $array ));

插入排序:(一维数组)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//插入排序
function insert_sort( $arr ){
$count = count ( $arr );
for ( $i =1; $i < $count ; $i ++){  
$tmp = $arr [ $i ];   
$j = $i - 1;   
while ( $arr [ $j ] > $tmp ){
$arr [ $j +1] = $arr [ $j ];
$arr [ $j ] = $tmp ;
$j --;
}
}
return $arr ;
}

选择排序(一维数组)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//选择排序
function select_sort( $arr ){
$count = count ( $arr );
for ( $i =0; $i < $count ; $i ++){
$k = $i ;
for ( $j = $i +1; $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 ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值