PHP的幾種排序實現

2021-09-11 07:08:07 字數 1915 閱讀 5968

<?php

set_time_limit(0);

//選擇排序

function selectsort($arr)

}//已經確定了當前的最小值的位置,儲存到$p中。如果發現最小值的位置與當前假設的位置$i不同,則位置互換即可。

if($p != $i)

}//返回最終結果

return $arr;

}class sort}}

return $arr;

} //快速排序

public function quicksort($arr)

//定義乙個基準數

//使用陣列中第乙個數作為基準數,這樣可以保證資料都參與對比

$base_num = $arr[0];

$behind=;//後

$before=;//前

for($i=1;$i<$len;$i++)

else

} $right=$this->quicksort($behind);

$left =$this->quicksort($before);

//拼接陣列

$res=array_merge($left,[$base_num],$right);

return $res;

} //插入

function insertsort($arr) else }}

return $arr;

}//斐波那契

function f($a)

return f($a-1) + f($a-2);

}//折半查詢

public function binsearch($arr,$start,$end,$search)

elseif($arr[$mid]>$search)else

// }else

// if($end>=$start)

elseif($arr[$mid]>$search)

else

}else

} //求由5個不重複的數字組成的任意不重複三位數,編寫乙個類實現,列舉出所有滿足條件的三位數。

//1.考慮5個數字含有0的情況

//2.考慮不含0的情況

//3.輸出所有滿足條件的三位數,並統計個數

//4.只允許使用count陣列

public function getnum($data)

for($j=0;$j<$len;$j++)

else}}

}return $num;

} //任意不重複五位數, 隨機取出10000個 存入到檔案中,每個檔案能夠儲存1000個數字,

//要求能夠快速地找到一數在不在我們的檔案中 在檔案中顯示位置

public function num()

public function search($str)

return $res; }}

//例項化物件

$obj=new sort();

//定義待排序陣列

$data=[1,5,23,44,8,0,3,66,43];

//氣泡排序

// $res=$obj->bubblesort($data);

//快速排序

// $res=$obj->quicksort($data);

//獲取不重複三位數

// $res=$obj->getnum(array(2,5,9,7,1));

// $res=array_count_values($res);

//折半查詢

// $res=$obj->binsearch([1,2,3,4],0,3,4);

echo '';

var_dump($res);

// print_r($res);

?>

php實現幾種排序

第一 冒牌排序 error reporting 0 arr array 0,5,1,9,3 將資料從小排序 function bubblesort arr print r arr echo 內層 bubblesort arr print r arr 第二 選擇排序 每一次遍歷找到最小的放到前邊去 e...

php實現幾種常見的排序演算法

交換排序 交換排序的基本思想是,比較兩個記錄鍵值的大小,如果這兩個記錄鍵值的大小出現逆序,則交換這兩個記錄,這樣將鍵值較小的記錄向序列前部移動,鍵值較大的記錄向序列後部移動。氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩...

php 幾種排序方式

1.氣泡排序 function m sort arr l count arr if l 0 return false for i 0 i l 1 i for j i 1 j l 1 j if arr i arr j temp arr i arr i arr j arr j temp return a...