• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

大牛

php 搞代码 3年前 (2022-01-23) 17次浏览 已收录 0个评论

求救大牛
Array ( [0] => 16 [1] => 23 [2] => 34 [3] => 100 [4] => 12 [5] => 23 [6] => 31 [7] => 37 [8] => 55 )

?要求升序排列,不能使用内置函数.求算法

——解决方案——————–
<?php
/*
?* 冒泡排序
?*/
function bubble_sort($array)
{
if(!is_array($array))
{
return false;
}

$len=count($array);

for($i=0;$i@本文来*源gaodai#ma#com搞*!代#%^码$网* < $len-1;$i++)
{
$flag = false;

for($j=0;$j < $len-$i-1;$j++)
{
if($array[$j] > $array[$j+1])
{
$temp=$array[$j];

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

$array[$j+1]=$temp;

$flag = true;
}
}
if(! $flag)//本趟排序没有值交换,则提前终止程序
? return $array;
}
return $array;
}
/*?
?* 希尔排序
?*/

function shell_sort($array)
{
if(!is_array($array))
{
return false;
}

$len=count($array);

$d=$len;//随机增量,初始值为数组长度,以不断除2取值

while($d >1)
{
$d=intval($d / 2);//分组间隔,2为n值,n值减少时,移动的趟数和数据增多

$temp=NULL;

$j=0;

for($i=$d;$i < $len;$i+=$d)
{
if($array[$i] < $array[$i-$d])
{
$temp=$array[$i];

$j=$i-$d;

while(($j >=0) && $temp < $array[$j])
{
$array[$j+$d]=$array[$j];

$j = $j – $d;
}

$array[$j+$d]=$temp;
}
}
}
return $array;
}
/*
?* 选择排序
?*/
function select_sort($array)
{
if(!is_array($array))
{
return false;
}

$len=count($array);

for($i=0;$i < $len;$i++)
{
$k=$i;

for($j=$i+1;$j < $len;$j++)
{
if($array[$k] > $array[$j])
{
$k=$j;
}
}
if($i!=$k){
$temp = $array[$i];
? $array[$i] = $array[$k];
? $array[$k] = $temp;
}
}
return $array;
}
?>
——解决方案——————–
选择排序,冒泡排序,插入排序
——解决方案——————–
百度、排序算法,一抓一大堆
——解决方案——————–
去学习下数据结构去


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:大牛

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址