php实现常见排序算法

<?php
$arr = array(56,23,67,32,27,45,65,29,43,12,34,41,19,13,57,86,49,62,16);
$n=count($arr);
//冒泡排序算法

for($j=0;$j<$n-1;$j++){
$issort = true;
for($i=0;$i<$n-1-$j;$i++){
if($arr[$i]>$arr[$i+1]){
$issort = false;
$tmp = $arr[$i];
$arr[$i] = $arr[$i+1];
$arr[$i+1] = $tmp;
}
}
if($issort)break;
}



//选择排序算法


for($i=0;$i<$n-1;$i++){
$min_index = $i;
for($j=$i+1;$j<$n;$j++){
if($arr[$j]<$arr[$min_index]){
$min_index = $j;
}
}

if($i != $min_index){
$tmp = $arr[$i];
$arr[$i] = $arr[$min_index];
$arr[$min_index] = $tmp;
}
}



//插入排序法
for($i=1; $i<$n; $i++){
  $j = 0;
  while($arr[$j]<$arr[$i] && ($j<$i)){
  $j++; //取得插入位置
  }
  if($i != $j){
  $tmp = $arr[$i];
  for($k=$i;$k>$j;$k--){
  $arr[$k] = $arr[$k-1];//重新排序
  }
  $arr[$j]=$tmp;//插入新元素
  }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值