コードにジャンプするだけです。
コードをコピーします コードは次のとおりです:
/*
* 挿入ソート(1次元配列)
* 毎回、ソート対象のデータ要素が1つずつ挿入されます。以前にソート済み ソート対象のすべてのデータ要素が挿入されるまで、配列内の適切な位置が配列の順序を維持します。
*/
function insertSort($arr){
if(!is_array($arr) || count($arr)==0){
return $arr;
}
$count = count($arr); for($i=1; $i<$count; $i++){
if(isset($arr[$i])){
$tmp = $arr[$i]; // 次の値を取得します。 element
$j = $i - 1; //前の添え字を取得
while($arr[$j] > $tmp){ //前の添え字が最後の添え字より大きい場合は小さい順にtolarge
$arr[ $j+1] = $arr[$j]; // 適切な位置に移動するまで小さい要素を前の要素と入れ替えてから、次の要素を移動します
$arr[$j] = $tmp;
$j --;
}
}
}
return $arr;
/*
* 選択ソート (1 次元配列)
* 各パスはデータ要素から最小 (最大) の要素を選択しますソートされるすべてのデータ要素が配置されるまで、順序はソートされた配列の最後に配置されます。
*/
function selectSort($arr){
if(!is_array($arr) || count($arr) == 0)
{
return $arr
}
$count = count($arr);
for($i=0; $i$k = $i;
for($j=$i+1; $j if ($ arr[$k] > $arr[$j])
$k = $j; // 最小値を求める
if ($k != $i){
$tmp = $arr[$i]; arr[$i] = $arr[$k];
$arr[$k] = $tmp; }
}
}
}
return $arr;
/*
* バブルソート(一次元) array )
* ペアごとにソートするデータ要素のサイズを比較し、2 つのデータ要素の順序が逆転していることが判明した場合は、逆転したデータ要素がなくなるまで交換します。 ){
$count = count( $array);
if ($count return false;
}
for($ifor( $j=$count-1; $j>$i; $j--){
if ($array[$j] < $array[$j-1]){ // 見つかった数値を比較します
$tmp = $array[$j
クイックソート (1 次元配列)
*
*/
function QuickSort($array){
if (count($array) <= 1){
return $array; }
$key = $array[0] ;
$left_arr = array();
for ($i=1; $i
}else{
$right_arr[] = $array[$i]
}
}
$ left_arr = クイックソート($left_arr);
$ right_arr = クイックソート($right_arr);
return array_merge($left_arr, array($key), $right_arr);
/**
* 要素の値でソートします
* strOrder は、asc 昇順 desc 降順のソート順です
*/
function sortByVal( $arr,$strOrder='asc')
{
if(!is_array($arr) || count($arr)==0)
{
return $arr;
$arrReturn = array(); foreach($arr as $key=> $val)
{
$arrKey[] = $key;
$arrVal[] = $val;
$count = count($arrVal); )
{
//キーの作成順序 Array
for($key=0;$key<$count;$key++)
{
$arrKeyMap[$key] = $key}
//値を並べ替えます。
for($i=0;$i<$count;$i++)
{
for($j = $count-1; $j>$i;$j--)
{
//<ここを小さい順と大きい順に並べます
$bol = $strOrder == 'asc' ? $arrVal[$j]<$arrVal[$j-1] : $arrVal[$j]>$arrVal [$j-1];
$tmp = $arrVal[$j] = $arrVal[$j-1]; ] = $tmp;
//キー配列の相互作用を引き起こす値のバブルソート
$arrKeyMap[$j] = $arrKeyMap[$j-1]; $j-1] = $keytmp;
}
}
}
if(count($arrKeyMap))
{
foreach ($val としての $arrKeyMap)
{
$arrReturn[] = $arrKey[$val];
}
}
return $arrReturn;
}
}
/**
* ネイティブ関数を使用して配列を値で配置します
*/
function arraySortByVal($arr,$keys,$type='asc'){
$keysvalue = $new_array = array() ;
foreach ($arr as $k=>$ v){
$keysvalue[$k] = $v[$keys]
}
if($type == 'asc'){
asort($keysvalue) );
}else{
arsort($keysvalue);
reset($keysvalue);
$new_array[$k] = $arr[$k] ];
}
$new_array を返す
;
配列値をソートする次の 2 つの方法では、1 つは独自に実装され、もう 1 つはネイティブ PHP 関数を使用します。実際、少量のデータ (一般的には 1 ページのデータ) についてはソートが可能です。大量のデータをソートするには、MYSQL の基本クラスに統合することをお勧めします。
以上、排卵日の計算方法とPHPのソートアルゴリズムのレビューと概要を紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。