导航:首页 > 编程语言 > php冒泡和快速

php冒泡和快速

发布时间:2022-04-11 16:22:38

php 怎么用冒泡算法进行排序呢

1.你必须使用冒泡算法吗?如果不是的话,我给你一个简单点的排序方法,就是循环数组,提取出A列或者B列的值及对应的数组,使用asort()根据值大小排序就将索引顺序排好了,然后循环一遍对应到以前的数组(或者干脆赋值给一个新数组);
2.考虑到你需要对B分组,然后对组内根据A排序,建议先对A排序,然后循环数组,以每个组的b列值为键,赋给一个新的数组,类似这样:
foreach($arr as $k=>$v){
$result[$v[1]][] = $v;
}
然后按照1的方法对外层排序。

Ⅱ 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组

这个主要就是用for循环做的:第一步是用第一个数字2和其他的数字比较:4,6,8,2然后用4和其他数字比较:6,8,4,2然后用6和其他数字比较:8,6,4,2最后就是8,6,4,2

Ⅲ PHP中的快速排序算法如何实现倒序

/*
php中的快速排序,并且倒序输出
*/
function quickSort($array)
{
if(!isset($array[1]))
return $array;
$mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素
$leftArray = array();
$rightArray = array();

foreach($array as $v)
{
if($v > $mid)
$rightArray[] = $v; //把比$mid大的数放到一个数组里
if($v < $mid)
$leftArray[] = $v; //把比$mid小的数放到另一个数组里
}

$leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割
$leftArray[] = $mid; //把分割的元素加到小的数组后面,不能忘了它哦

$rightArray = quickSort($rightArray); //把比较大的数组再一次进行分割
return array_reverse(array_merge($leftArray,$rightArray)); //组合两个结果后倒序排列
}

Ⅳ PHP数组算术题,谁做得多就给谁

//第一题:

//**************************************************************

$str='1,2,3,4,5,6'; //你给定的字符串
function my($str){
$item_arr=explode(',',$str);
shuffle($item_arr);
if($item_arr[3]==5){
return my($str);
}else{
for($i=0;$i<sizeof($item_arr);$i++){
if($item_arr[$i]==5 && next($item_arr)==6){
return my($str);
exit();
}
}
return $item_arr;
}
}
print_r(my($str));

//*********************************************第二题

$str="aaaabsfdsfavdchjs"; //你给出的字符串
$item=str_split($str);
$a=array_count_values($item);
foreach($a as $k=>$v){
if($v==1){
echo $k;
exit();
}
}

//*****************************************第三题

$str='12,65,110,2,3,55,79,10,45'; //这是你给定的数字字符串
$item_arr=explode(',',$str);
while(sizeof($item_arr)>0){
$max=max($item_arr);
$min=min($item_arr);
echo $max."<br/>";
echo $min."<br/>";
$max_pos=array_keys($item_arr,$max);
$min_pos=array_keys($item_arr,$min);
unset($item_arr[$max_pos[0]]);
unset($item_arr[$min_pos[0]]);
}

//****************************************第四题

$num=1234567890; //你给定的数字
echo number_format($num);

/******************************************第五题

$filename='abc.exe.jpg';
$item=pathinfo($filename);
echo $item['extension'];

/*******************************************第六题


/*****************************************第七,八题
第七第八题重复.

可以使用array_multisort()函数对二维数组进行排序

/*****************************************第9题

$str_low='abcdefghijklmnopqrstuvwxyz';
$str_upp='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$arr_low=str_split($str_low);
$arr_upp=str_split($str_upp);
$str= 'A journey of a thousand miles must begin with a single step.'; //你给出的字符串
$a=str_word_count($str,1);
foreach($a as $k=>$v){
$item=substr($v,-1,1);
if(in_array($item,$arr_low)){ //小写的情况
if(strlen($v)==1){
$item=strtoupper($v);
echo $item." ";
}else{
$item=strtoupper($item);
$item_str=substr($v,0,strlen($v)-1);
$item_str=$item_str.$item;
echo $item_str." ";
}
}elseif(in_array($item,$arr_upp)){ //大写的情况
if(strlen($v)==1){
$item=strtolower($v);
echo $item." ";
}else{
$item=strtoupper($item);
$item_str=substr($v,0,strlen($v)-1);
$item_str=$item_str.$item;
echo $item_str." ";
}
}

}

/********************************************第十题
已经看了N遍,仍然无法理解题目意思

/********************************************第十一题

$data=array(23,22,45,28);
$a=implode('',$data);
$b=str_split($a);
print_r($b);

/********************************************第十二题

体力不支,让大家打吧.

Ⅳ 关于PHP冒泡排序法。

前台输入部分我就不写了,管你是用字符串形式一起传到后台还是说先用js存储了再提交到后台,总之假设你前天都获得了一个一维数组,这里给一个从大到小,一个从小到大的写法:

从大到小:

<?php

/**

* 冒泡排序算法示例

*/

// 这里以一维数组做演示

$demo_array = array(23,15,43,25,54,2,6,82,11,5,21,32,65);

// 第一层for循环可以理解为从数组中键为0开始循环到最后一个

for ($i=0;$i<count($demo_array);$i++) {

// 第二层将从键为$i的地方循环到数组最后

for ($j=$i+1;$j<count($demo_array);$j++) {

// 比较数组中相邻两个值的大小

if ($demo_array[$i] < $demo_array[$j]) {

$tmp = $demo_array[$i]; // 这里的tmp是临时变量

$demo_array[$i] = $demo_array[$j]; // 第一次更换位置

$demo_array[$j] = $tmp; // 完成位置互换

}

}

}

// 打印结果集

echo '<pre>';

var_mp($demo_array);

echo '</pre>';

主要的代码已经给你写出来了,你自己把前端部分加上就行了

Ⅵ 用PHP如何实现冒泡排序

<?php//冒泡排序方法functionbubblesort(&$arr){
//定义一个变量保存交换的值
$temp=0;
for($i=0;$i<count($arr);$i++){
for($j=0;$j<count($arr)-$i-1;$j++){
if($arr[$j]>$arr[$j+1]){
//如果前面的那个数大于后面的那个数,那么他们就进行交换
$temp=$arr[$j];$arr[$j]=$arr[$j+1];$arr[$j+1]=$temp;
}
}
}
}
$arr=array(100,99,200,5,-4,6,-7);
bubbleSort($arr);
print_r($arr);
//数组是值传递,所以传递的时候加个&符号就是地址传递,改变外部变量?>

Ⅶ 一帖看懂PHP面试必考题:什么是冒泡排序

//首先定义一个数组;
<?php
$arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588);
// 计算数组的长度;
$n =count($arr);
// 外层循环n-1
for($h=0;$h<$n-1;$h++){
//内层循环n-h-1
for($i=0;$i<$n-$h-1;$i++){
//判断数组大小,颠倒位置(从小往大排序,还是从大往小)
if($arr[$i]>$arr[$i+1]){
//定义空容器$kong,然后将两个判断中大的装进去
$kong=$arr[$i+1];
//大的这时就空了,然后将小的装进去
$arr[$i+1]=$arr[$i];
//然后将小的在装到空的进去。这就实现了从小往大排序,从大往小与此相反
$arr[$i]=$kong; }
}}
最后运行结果如下:
php编程冒泡排序
完整代码粘贴如下:
//冒泡排序
$arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588);
$n =count($arr);
//echo $n;
for($h=0;$h<$n-1;$h++){//外层循环n-1
for($i=0;$i<$n-$h-1;$i++){
if($arr[$i]>$arr[$i+1]){//判断数组大小,颠倒位置
$kong=$arr[$i+1];
$arr[$i+1]=$arr[$i];
$arr[$i]=$kong;
}
}
}
var_mp($arr);

Ⅷ php几种排序算法实例详解

下面给你介绍四种排序方法:

1) 插入排序(Insertion Sort)的基本思想是:
每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。实现代码如下:

Ⅸ 用php程序编写冒泡排序、快速排序

不要做这些作业,如果你想学好PHP的话,因为PHP有更高效的函数可以直接调用完成排序,对于学习PHP来说,知道系统函数并熟练调用才是能力,冒泡法这样的浪费光阴的东西,不可能在任何一个PHP项目中使用。

Ⅹ 用PHP写冒泡排序法

function bubble_sort($array)
{
$count = count($array);
if($count <= 0)
{
return false;
}
for($i=0; $i<$count; $i++)
{
for($k=$count-1; $k>$i; $k--)
{
if($array[$k] < $array[$k-1])
{
$tmp = $array[$k];
$array[$k] = $array[$k-1];
$array[$k-1] = $tmp;
}
}
}
return $array;
}
$arr = array(3, 5, 1, 4, 2);
$s = bubble_sort($arr);
print_r($s);

拿去改吧

阅读全文

与php冒泡和快速相关的资料

热点内容
优信二手车解压后过户 浏览:61
Windows常用c编译器 浏览:778
关于改善国家网络安全的行政命令 浏览:833
安卓如何下载网易荒野pc服 浏览:654
javainetaddress 浏览:104
苹果4s固件下载完了怎么解压 浏览:1002
命令zpa 浏览:285
python编译器小程序 浏览:944
在app上看视频怎么光线调暗 浏览:540
可以中文解压的解压软件 浏览:592
安卓卸载组件应用怎么安装 浏览:912
使用面向对象编程的方式 浏览:339
程序员项目经理的年终总结范文 浏览:929
内衣的加密设计用来干嘛的 浏览:432
淮安数据加密 浏览:292
魔高一丈指标源码 浏览:982
松下php研究所 浏览:168
c回调java 浏览:399
梦幻端游长安地图互通源码 浏览:745
电脑本地文件如何上传服务器 浏览:313