php编写冒泡排序算法_一道PHP冒泡排序算法笔试题

本文通过一道PHP笔试题介绍了冒泡排序的实现过程。提供了一个名为`engage`的类,其中包含`getArray`方法用于创建和展示数组,`getString`方法用于字符串操作,重点在于`getBubble`方法,该方法实现了冒泡排序算法,并返回排序后的数组。示例代码展示了冒泡排序的运行结果。
摘要由CSDN通过智能技术生成

一道PHP笔试题:请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 10 2 36 14 10 25 23 85 99 45。

关于冒泡排序大家应该都非常熟悉了,原理就不多说了,这里只做简单记录。下面是参考代码。

class engage

{

public function getArray()

{

$arr1 = array (

'0' => array ('fid' => 1, 'tid' => 1, 'name' => 'Name1' ),

'1' => array ('fid' => 1, 'tid' => 2 , 'name' => 'Name2' ),

'2' => array ('fid' => 1, 'tid' => 5 , 'name' => 'Name3' ),

'3' => array ('fid' => 1, 'tid' => 7 , 'name' => 'Name4' ),

'4' => array ('fid' => 3, 'tid' => 9, 'name' => 'Name5' )

);

$arr2 = array();

foreach ($arr1 as $key => $value)

{

$arr2[$value['fid']][] = array('tid' => $value['tid'],'name' => $value['name']);

}

return $arr2;

}

//print_r($arr2);

//$eString = 'open_door';

public function getString($eString = null)

{

$eString = explode('_',$eString);

$eString = array_map("ucfirst",$eString);

$eString = implode($eString,'');

return $eString;

}

/**

* 冒泡排序

* @return unknown

*/

public function getBubble()

{

$isOver = false;

$bubbleArray = array(10,2,36,14,10,25,23,85,99,45);

$bubbleResult = $bubbleArray;

do{

$bubbleArray = $bubbleResult;

$isOver = true;

foreach ($bubbleArray as $key => $value)

{

if ($value < $bubbleResult[$key-1])

{

$bubbleResult[$key]=$bubbleResult[$key-1];

$bubbleResult[$key-1]=$value;

$isOver = false;

}

}

}while (!$isOver);

return $bubbleResult;

}

}

$engage = new engage();

echo '

';

print_r($engage->getArray());

echo '

';

echo $engage->getString('make_by_nowamagic');

echo '

';

print_r($engage->getBubble());

echo '

';

?>

程序运行结果如下:

Array

(

[1] => Array

(

[0] => Array

(

[tid] => 1

[name] => Name1

)

[1] => Array

(

[tid] => 2

[name] => Name2

)

[2] => Array

(

[tid] => 5

[name] => Name3

)

[3] => Array

(

[tid] => 7

[name] => Name4

)

)

[3] => Array

(

[0] => Array

(

[tid] => 9

[name] => Name5

)

)

)

MakeByNowamagic

Array

(

[0] => 2

[1] => 10

[2] => 10

[3] => 14

[4] => 23

[5] => 25

[6] => 36

[7] => 45

[8] => 85

[9] => 99

)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值