PHP-----配列と一般的なソートアルゴリズム
33778 ワード
配列の作成
配列の遍歴といくつかの詳細.
配列演算子を使用して複数の配列を操作することもできます.phpマニュアルを参照してください.
ソートアルゴリズム-----1.バブルアルゴリズム(昨年cを学んだとき、先生はバブル法を詳しく説明し、最も簡単なソートアルゴリズムでもあり、計算効率は比較的低い)
ソートアルゴリズム-----2.ソートの選択
ソートアルゴリズム-----3.ソートの挿入
ソートアルゴリズム-----4.高速ソート---各種言語のソートアルゴリズムの思想は大同小異である.phpの高速ソートアルゴリズムは簡単で、javaはもっと難しいです.詳細は
JS快速ソートを実現---とても良い1篇の解釈の文章
splice()メソッドは、配列からアイテムを追加/削除し、削除されたアイテムを返します.---splice()詳細
slice()配列要素を選択します.startからend(end要素を除く)までのarrayObjectの要素を含む新しい配列を返します.
concat()メソッドは、2つ以上の配列を接続するために使用されます.---concat()詳細
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()詳細