15
15
* @param array $container
16
16
* @return array
17
17
*/
18
- function BubbleSort ( array $ container ) {
18
+ function BubbleSort (array $ container )
19
+ {
19
20
$ count = count ($ container );
20
- for ( $ j = 1 ; $ j < $ count ; $ j ++ ) {
21
- for ( $ i = 0 ; $ i < $ count - $ j ; $ i ++ ) {
22
- if ( $ container [$ i ] > $ container [$ i + 1 ] ) {
21
+ for ($ j = 1 ; $ j < $ count ; $ j ++) {
22
+ for ($ i = 0 ; $ i < $ count - $ j ; $ i ++) {
23
+ if ($ container [$ i ] > $ container [$ i + 1 ]) {
23
24
$ temp = $ container [$ i ];
24
- $ container [$ i ] = $ container [$ i+ 1 ];
25
- $ container [$ i+ 1 ] = $ temp ;
25
+ $ container [$ i ] = $ container [$ i + 1 ];
26
+ $ container [$ i + 1 ] = $ temp ;
26
27
}
27
28
}
28
29
}
29
30
return $ container ;
30
31
}
31
32
32
- var_dump ( BubbleSort ([4 ,21 ,41 ,2 , 53 ,1 , 213 ,31 ,21 ,423 ]) );
33
+ var_dump (BubbleSort ([4 , 21 , 41 , 2 , 53 , 1 , 213 , 31 , 21 , 423 ]));
33
34
34
35
/*
35
36
array(10) {
@@ -54,4 +55,39 @@ function BubbleSort( array $container ) {
54
55
[9] =>
55
56
int(423)
56
57
}
57
- */
58
+ */
59
+
60
+ // +----------------------------------------------------------------------
61
+ // | 方法二
62
+ // +----------------------------------------------------------------------
63
+ function BubbleSortV2 (array $ container )
64
+ {
65
+ $ len = count ($ container );
66
+ // 也可以用foreach
67
+ for ($ i = 0 ; $ i < $ len ; $ i ++) {
68
+ for ($ j = $ i + 1 ; $ j < $ len ; $ j ++) {
69
+ if ($ container [$ i ] > $ container [$ j ]) {
70
+ list ($ container [$ i ], $ container [$ j ]) = array ($ container [$ j ], $ container [$ i ]);
71
+ }
72
+ }
73
+ }
74
+
75
+ return $ container ;
76
+ }
77
+
78
+ print_r (BubbleSort ([4 , 21 , 41 , 2 , 53 , 1 , 213 , 31 , 21 , 423 ]));
79
+ /*
80
+ Array
81
+ (
82
+ [0] => 1
83
+ [1] => 2
84
+ [2] => 4
85
+ [3] => 21
86
+ [4] => 21
87
+ [5] => 31
88
+ [6] => 41
89
+ [7] => 53
90
+ [8] => 213
91
+ [9] => 423
92
+ )
93
+ */
0 commit comments