数组排序实例分析的PHP选择排序方法
选择排序法的基本思想是通过一个直接的解释,如数组arr数组美元=(2,6,3,9),从大到小的顺序。
第一周期:它首先假设$ ARR { 0 }是最大值,然后比较$ ARR { 1 } ~ $ ARR { 3 },如果是比较大的,所以是交流的过程(2,6,3,9)和6—2(6,2,3,9)——6比一百万和3比我(6,2,3,9)和9—6(9,2,3,6)比我注意这里下标有改变。
第二周期:假设最大的$ ARR { 1 }(不包括$ ARR { 0 }),分别以$ ARR { 2 } ~ $ ARR { 3 }相比,这一过程---- 2(9,2,3,6)和3(9,3,2,6)--- 3和6球比我(9,6,2,3)。
第三周期:假设最大为ARR { 2 },以$ ARR { 3 }相比,是(9,6,2,3)--- 2和3(9,6,3,2)比我
同样的,它可以通过n-1循环来安排。
PHP代码如下,与函数的相同封装。
< PHP
功能选择排序($ ARR){
为($我= 0;$我<计数($ ARR);$ i++){
美元美元美元ARR最大= {我};
为(J =我+ 1;J <计数($ ARR);$ J++){
如果($美元$ J值小于ARR { }){
美元美元美元ARR最大= {,};
ARR { } = J美元美元美元美元ARR {我};
ARR {我} =美元美元美元最大;
}
}
}
返回的数组;
}
myarr美元=阵列(2,6,3,9);
SelectSort(myarr美元);
;
print_r($ myarr);
>
代码分析:
第一次大循环:
我= 0阵列(2,6,3,9)
J = 1,执行2,6美元:变成ARR { 0 } = 6,$ ARR { 1 } = 2,最大值为6美元(6,2,3,9)
$ j=2,执行3和6:不执行
J = 3,执行9,6美元:变成ARR { 0 } = 9,$ ARR { 3 } = 6,最大值为9美元(9,2,3,6)
第二次大循环:
我= 1美元美元美元,最大= ARR { 1 } = 2,阵列(9,2,3,6)
J = 2,执行3,2美元:变成ARR { 1 } = 3,$ ARR { 2 } = 2,最大值为3美元(9,3,2,6)
J = 3,执行6,3美元:变成ARR { 1 } = 6,$ ARR { 3 } = 3,最大值为6美元(9,6,2,3)
第三大循环:
我= 2美元美元美元,最大= ARR { 2 } = 2,阵列(9,6,2,3)
J = 3,执行3,2美元:变成max { 2 } = 3,$ ARR { 3 } = 2,最大值为3美元(9,6,3,2)
希望本文能对大家的PHP程序设计有所帮助。