クイックソート;phpでsortを実現して文字列のソートを行う

2546 ワード

PHP関数にはsort関数があり,配列の並べ替えを行う.
文字列が必要な場合はimplode(array()で配列を文字列に変換して出力します
ここには普通の関数が来る時sortの実現の構想があります
1){
        $k=$str[0];
        $x=array();
        $y=array();
        $_size=count($str);
        for($i=1;$i$k){
                $y[]=$str[$i];
            }
        }
        $x=show($x);
        $y=show($y);
        return array_merge($x,array($k),$y);
    }else{
        return $str;
    }
}
$a=9621;
$arr=str_split($a,1);
$arr1=show($arr);
$arr2=implode($arr1);
echo $arr2;

9621が順次出力されます
もう一つの迅速なソートの考え方は
 function myQuickSort(&$arr){
	 	//         ,    1     
	 	if(count($arr)>1){
	 		//                  
	 		$key = $arr[0];
			$left = array();
			$right = array();
			
			$len = count($arr);
			$i=1;
			$j=$len-1;
			$bank = $len%2;
			//         ,            
			//         ,                
			if($bank==1){
				//           ,     x
				for($x = 0;$x=$key){
						$right[] = $arr[$i];
						$i++;
					}
					else{
						$left[] = $arr[$i];
						$i++;
					}
					
				}
			}else{
				for($x=0;$x=$key){
						$right[] = $arr[$i];
						$i++;
					}
					else{
						$left[] = $arr[$i];
						$i++;
					}
					
					//$left = array_pop($left);
					
				}
			}
			
			
	 	}else{
	 		return $arr;
	 	}
		//  ,      
	 	$left = myQuickSort($left);
	    $right = myQuickSort($right);
		//         ,    
	    return array_merge($left,array($key),$right);
	 }
またはsortで文字列と配列を互いに変換する
sort()デフォルトのソート[A-Z]は、小さいときから大きいときまで
sort($array,[sort_flags])
2つのパラメータがあります
1つのパラメータはソートする配列です.
2つ目は、次の値でソートを変更できる動作です.
ソート・タイプのタグ:SORT_REGULAR-通常比較ユニット(タイプを変更しない)SORT_NUMERIC-ユニットは数字としてを比較する.SORT_STRING-ユニットは文字列としてを比較する.SORT_LOCALE_STRING-現在の領域(locale)設定に基づいてセルを文字列として比較し、setlocale()で変更できます. SORT_NATURAL-natsort()と同様に、各ユニットを「自然な順序」で文字列をソートします.PHP 5.4.0に追加されました. SORT_FLAG_CASE-SORT_STRINGまたはSORT_NATURALとマージ(ORビット演算)することができ、大文字と小文字のソート文字列を区別しない.
戻り値bool
サンプルコード
 $val) {
    echo "fruits[" . $key . "] = " . $val . "
"; } ?> : fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange

ブレンドタイプの値を含む配列をソートするときは注意してください.
sort()は予知できない結果を生じる可能性がある