ホームページ >バックエンド開発 >PHPの問題 >PHPアルゴリズムソート事典、面接必読のアルゴリズム

PHPアルゴリズムソート事典、面接必読のアルゴリズム

移动用户-8334543
移动用户-8334543オリジナル
2022-06-16 16:40:02233ブラウズ

1.冒泡排序

function sort($array) {

$length=count($array);

for ($i=$length;$i>0;$i--){

$ swape=true;

for ($j=0;$j<$i-1;$j++){

if ($array[$j]>$array[$j+1]){

$ temp=$array[$j];

$array[$j]=$array[$j+1];

$array[$j+1]=$temp;

$swape=false;

{

if(!isset ($input))

{

return [];

}

do

{

$swapped = false;

for($i = 0, $count = size of($input) - 1; $i < $count; $i++)

{

if($input[$i + 1] < $input[$i])

list($input[$i + 1]、 $input[$i]) = [$input[$i], $input[$i + 1]];

$swapped = true;

}

}

}

while ($スワップ);

return $input;

}

$array = [51158,1856,8459,67957,59748,58213,90876,39621,66570,64204,79935,27892,47615,94706,34 201,74474,63968,4337 ,43688,42685,31577,5239,25385,56301,94083,23232,67025,44044,74813,34671,90235,65764,49709,12440,21165,20620,38265,12973,2 5236,93144,13720,4204,77026 ,42348,19756,97222,78828,73437,48208,69858,19713,29411,49809,66174,52526277,7515,7873,8350,28229,24105,76818,86897,18456, 29373,7853,24932,93070,4696 ,63015,9358,28302,3938,11754,33679,18492,91503,63395,12029,23954,27230,58336,16544,23606,61349,37348,78629,96145,57954,32 392,76201,54616,59992,5676 ,97799,47910,98758,75043,72849,6466,68831,2246,69091,22296,6506,93729,86968,39583,46186,96782,19074,46574,46704,99211,552 95,33963,77977,86805,72686 ];

$array = sort($array);

echo implode(',', $array);

3.计数排序

function sort($array, $min, $max)

{

$count = array();

for($i = $min; $i <= $max; $i++)

{

$count[$i] = 0;

}

foreach($array as $number)

{

$count[$number]++;

}

$ z = 0;

for($i = $min; $i <= $max; $i++) {

while( $count[$i]-- > 0 ) {

$array[$z++ ] = $i;

}

}

return $array;

}

4.插入排序

function sort($array){

for ($i=1;$i

$currentVal=$array[$i];

for ($j=$i-1;$j>=0&&$array[$j]>gt;$currentVal;$j- - ){

$ array [$ j+1] = $ array [$ j];

}

$ array [$ j+1] = $ currentVal;

5.快速排序

function sort($input)

{

if(!isset($input))

{

return [];

}

$lt = [];

$gt = [];

if(sizeof($input) < 2)

{

return $input;

}

$key = key($input);

$シフト = 配列シフト($input);

foreach($input as $value)

{

$value <= $shift ? $lt[] = $value : $gt[] = $value;

}

return array_merge(quickSort($lt), [$key => $shift], QuickSort($gt));

}

$配列 = [51158,1856,8459,67957,59748,58213,90876,39621,66570,64204,79935,27892,47615,94706,34201,74474,63968,4337,43688, 42685,31577,5239,25385 ,56301,94083,23232,67025,44044,74813,34671,90235,65764,49709,12440,21165,20620,38265,12973,25236,93144,13720,4204,77026,4 2348,19756,97222,78828,73437 ,48208,69858,19713,29411,49809,3015,9358,28302,3938,11754,33679,18492,91503,63395,12029,23954,27230,58336,16544,23606,613 49,37348,78629,96145,57954 ,32392,76201,54616,59992,5676,97799,47910,98758,75043,72849,6466,68831,2246,69091,22296,6506,93729,86968,39583,46186,9678 2,19074,46574,46704,99211 ,55295,33963,77977,86805,72686];

$array = QuickSort($array);

echo implode(',', $array);

6.选择排序

function sort($array) {

$length=count($array);

for ($i=0;$i<$length;$i++){

$lowest=$i;

for ($j=$i+1) ;$j<$length;$j++){

if ($array[$j] < $array[$lowest]){

$lowest=$j;

}

}

if ($ i !==$lowest){

$temp=$array[$i];

$array[$i]=$array[$lowest];

$array[$lowest]=$temp;

}

}

return $array;

}

————————————————

版权通知:本文はCSDN博主「m0_37540251」の原文、準拠CC 4.0 BY-SA バージョンのダウンロード、添付の原文出力および本書のリンク。

以上がPHPアルゴリズムソート事典、面接必読のアルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。