導航:首頁 > 編程語言 > 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
可以中文解壓的解壓軟體 瀏覽:591
安卓卸載組件應用怎麼安裝 瀏覽:912
使用面向對象編程的方式 瀏覽:339
程序員項目經理的年終總結範文 瀏覽:929
內衣的加密設計用來幹嘛的 瀏覽:432
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:399
夢幻端游長安地圖互通源碼 瀏覽:745
電腦本地文件如何上傳伺服器 瀏覽:312