PHP-----配列と一般的なソートアルゴリズム


配列の作成
 1 <?php

 2     //php    

 3     //     

 4     $arr[0]=1;

 5     $arr[1]=23;

 6     $arr[2]=20;

 7     $arr[3]=43;

 8 

 9     for($i=0;$i<count($arr);$i++){

10         echo '<br>'.$arr[$i];

11     }

12     //     

13     $b=array(1,23,20,43);

14 

15     for($i=0;$i<count($b);$i++){

16         echo '<br>'.$b[$i];

17     }

18 

19     //     ---      ----           foreach  

20     $c['paxster']='pax';

21     $c['boychik']='boy';

22     foreach($c as $val){

23         echo $val.'<br>';

24     }

25     foreach ($c as $key => $value) {

26         echo $key.'='.$value.'<br>';

27     }

28 

29     //js      

30     //var arr=new Array();

31     //var a = new Array(5);     

32     //var abb=[];

33 ?>

配列の遍歴といくつかの詳細.
配列演算子を使用して複数の配列を操作することもできます.phpマニュアルを参照してください.
 1 <?php

 2     //1.

 3     $arr=array(2=>'hello',22,33);

 4     //echo $arr[1];---->>  

 5     //echo $arr[3];---->>22

 6     //echo $arr[5];---->>  

 7 

 8     //2.    --------          

 9     $abb=array(1=>4,32,23);

10     $abb[1]=40;

11     echo $abb[1];

12 

13     //3.       

14     $acc[true]='wuhan';

15     $acc[false]='hubei';

16     $acc[null]='china';

17     $acc[12.3]='earth';

18 

19     echo $acc[1].'<br>';

20     echo $acc[0].'<br>';

21     echo $acc[null].'<br>';

22     echo $acc[''].'<br>';

23 

24     echo $acc[12];

25     echo $acc[12.3];

26 

27     //         

28     print_r($acc);

29     var_dump($acc);

30 

31     //4.      

32     $add=array(2,3);

33     $add[4]=34;

34     echo $add[4];//35 

36     //5.       ---  addme     ,  notice,   addme             

37     const addme='QQ';

38     $e[addme]='me';

39     echo $e[addme];

40 

41     //6.is_array----    1,      

42     $f=array(00,12);

43     echo is_array($f);

44 

45     //     explode

46     $g='1 2 3 4 5';

47     $h='1-2-3-4-5';

48     $gg=explode(" ",$g);

49     $hh=explode("-",$h);

50     print_r($gg);

51     print_r($hh);

52 

53     //  4       

54     //for

55     $dd=array(20,30,40,50,60);

56 

57     for($i=0;$i<count($dd);$i++){

58         echo '<br/>'.$dd[$i];

59     }

60     //while

61     $i=0;

62     while($i<count($dd)){

63         echo '<br/>'.$dd[$i];

64         ++$i;

65         //$i++;

66     }

67     //do..while

68     $i=0;

69     do{

70         echo '<br/>'.$dd[$i];

71         ++$i;

72     }while($i<count($dd));

73     //foreach

74     foreach($dd as $key => $value){

75         //echo $key=$value.'<br/>';

76         echo "$key=$value<br/>";

77     }

78 ?>

ソートアルゴリズム-----1.バブルアルゴリズム(昨年cを学んだとき、先生はバブル法を詳しく説明し、最も簡単なソートアルゴリズムでもあり、計算効率は比較的低い)
 1 //bubble sort

 2     $arr=array(20,-20,0,5,-49);

 3     /*$temp=0;

 4     for($i=0;$i<count($arr)-1;$i++){

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

 6             if($arr[$j]>$arr[$j+1]){

 7                 $temp=$arr[$j];

 8                 $arr[$j]=$arr[$j+1];

 9                 $arr[$j+1]=$temp;

10             }

11         }

12     }

13     print_r($arr);*/

14     //  sort  ------       

15     function bubbleSort(&$arr){

16         $temp=0;

17         for($i=0;$i<count($arr)-1;$i++){

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

19                 if($arr[$j]>$arr[$j+1]){

20                     $temp=$arr[$j];

21                     $arr[$j]=$arr[$j+1];

22                     $arr[$j+1]=$temp;

23                 }

24             }

25         }

26     }

27     bubbleSort($arr);

ソートアルゴリズム-----2.ソートの選択
 1 //selectSort     

 2     function selectSort(&$arr){

 3         

 4         for($i=0;$i<count($arr)-1;$i++){//    

 5             $temp=0;//    

 6             $min=$arr[$i];//     

 7             $minIndex=$i;//      

 8             for($j=$i+1;$j<count($arr);$j++){//       

 9                 if($min>$arr[$j]){

10                     $min=$arr[$j];

11                     $minIndex=$j;

12                 }

13             }

14             //   

15             $temp=$arr[$i];

16             $arr[$i]=$arr[$minIndex];

17             $arr[$minIndex]=$temp;

18         }

19     }

20     selectSort($arr);

ソートアルゴリズム-----3.ソートの挿入
 1 //insertSort    

 2     function insertSort(&$arr){

 3         for($i=1;$i<count($arr);$i++){

 4             $insertValue=$arr[$i];

 5             $insertIndex=$i-1;

 6             while($insertIndex>=0&&$insertValue<$arr[$insertIndex]){

 7                 $arr[$insertIndex+1]=$arr[$insertIndex];

 8                 $insertIndex--;

 9             }

10             $arr[$insertIndex+1]=$insertValue;

11         }

12     }

13     insertSort($arr);

14     print_r($arr);

15     var_dump($arr);

ソートアルゴリズム-----4.高速ソート---各種言語のソートアルゴリズムの思想は大同小異である.phpの高速ソートアルゴリズムは簡単で、javaはもっと難しいです.詳細は
 1 function quickSort($arr) {

 2   if (count($arr) > 1) {

 3     $k = $arr[0];

 4     $x = array();

 5     $y = array();

 6     $_size = count($arr);     

 7     for ($i=1; $i<$_size; $i++) {

 8       if ($arr[$i] <= $k) {

 9         $x[] = $arr[$i];

10       } else {

11         $y[] = $arr[$i];

12       }

13     }

14     $x = quickSort($x);

15     $y = quickSort($y);

16     return array_merge($x, array($k), $y);

17   } else {

18     return $arr;

19   }

20 }

JS快速ソートを実現---とても良い1篇の解釈の文章
 1 var quickSort = function(arr) {

 2   if (arr.length <= 1) { return arr; }

 3   var pivotIndex = Math.floor(arr.length / 2);

 4   var pivot = arr.splice(pivotIndex, 1)[0];//     

 5   var left = [];

 6   var right = [];

 7   for (var i = 0; i < arr.length; i++){

 8     if (arr[i] < pivot) {

 9       left.push(arr[i]);

10     } else {

11       right.push(arr[i]);

12     }

13   }

14   return quickSort(left).concat([pivot], quickSort(right));

15 };

splice()メソッドは、配列からアイテムを追加/削除し、削除されたアイテムを返します.---splice()詳細
slice()配列要素を選択します.startからend(end要素を除く)までのarrayObjectの要素を含む新しい配列を返します.
concat()メソッドは、2つ以上の配列を接続するために使用されます.---concat()詳細