本文目錄一覽:
php冒泡排序怎麼排?
按照你的要求,編寫的冒泡排序的PHP程序如下
(注意因為鍵的值是字元串類型,所以按照字元大小從小到大排序)
原理是把鍵值對數組拆成鍵值的二維數組,然後根據值排序,最後再組裝成鍵值對數組
?php
$a=Array(“a”=”107″,”b”=”5448″,”c”=”522”);
foreach($a as $k=$v) $d[] = array($k, $v);
for($i=0;$icount($d)-1;$i++){
for($j=0;$jcount($d)-1-$i;$j++){
if($d[$j][1]$d[$j+1][1]){
$temp=$d[$j];
$d[$j]=$d[$j+1];
$d[$j+1]=$temp;
}
}
}
$arr = array();
foreach($d as $v) $arr[$v[0]] = $v[1];
var_dump($arr);
?
php二維數組如何冒泡排序對角輸出
將一維數組的改一下就可以了
假設數組是a[m][n],可以用下面的方法
for(pass=1;passm*n;pass++)
{
for(i=0;im*n-1;i++)
{
if(a[i/n][i%n]a[(i+1)/n][(i+1)%n])
{
hold=a[i/n][i%n];
a[i/n][i%n]=a[(i+1)/n][(i+1)%n];
a[(i+1)/n][(i+1)%n]=hold;
}
}
}
其實是做了一個二維和一維間的一一映射
php二維數組排序
$ary=array(array(“ID”=21,”name”=”kitty”),array(“ID”=22,”name”=”sony”),array(“ID”=17,”name”=”picker”));
for($i=0; $icount($ary) ;$i++){
for($j=0; $j$i; $j++){
if($ary[$i][‘ID’] $ary[$j][‘ID’]){
$temp = $ary[$i][‘ID’];
$ary[$i][‘ID’] = $ary[$j][‘ID’];
$ary[$j][‘ID’] = $temp;
}
}
}
用PHP如何實現冒泡排序
?php //冒泡排序方法 function bubblesort($arr){
//定義一個變數保存交換的值
$temp =0;
for($i=0;$icount($arr);$i++){
for($j=0;$jcount($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);
//數組是值傳遞,所以傳遞的時候加個符號就是地址傳遞,改變外部變數?
二維數組如何冒泡排序???
將一維數組的改一下就可以了
假設數組是a[m][n],可以用下面的方法
for(pass=1;passm*n;pass++)
{
for(i=0;im*n-1;i++)
{
if(a[i/n][i%n]a[(i+1)/n][(i+1)%n])
{
hold=a[i/n][i%n];
a[i/n][i%n]=a[(i+1)/n][(i+1)%n];
a[(i+1)/n][(i+1)%n]=hold;
}
}
}
其實是做了一個二維和一維間的一一映射
關於PHP冒泡排序法。
前台輸入部分我就不寫了,管你是用字元串形式一起傳到後台還是說先用js存儲了再提交到後台,總之假設你前天都獲得了一個一維數組,這裡給一個從大到小,一個從小到大的寫法:
從大到小:
?php
/**
* 冒泡排序演算法示例
*/
// 這裡以一維數組做演示
$demo_array = array(23,15,43,25,54,2,6,82,11,5,21,32,65);
// 第一層for循環可以理解為從數組中鍵為0開始循環到最後一個
for ($i=0;$icount($demo_array);$i++) {
// 第二層將從鍵為$i的地方循環到數組最後
for ($j=$i+1;$jcount($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_dump($demo_array);
echo ‘/pre’;
從小到大:
?php
/**
* 冒泡排序演算法示例
*/
// 這裡以一維數組做演示
$demo_array = array(23,15,43,25,54,2,6,82,11,5,21,32,65);
// 第一層for循環可以理解為從數組中鍵為0開始循環到最後一個
for ($i=0;$icount($demo_array);$i++) {
// 第二層將從鍵為$i的地方循環到數組最後
for ($j=$i+1;$jcount($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_dump($demo_array);
echo ‘/pre’;
主要的代碼已經給你寫出來了,你自己把前端部分加上就行了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219919.html