2.选择排序原理 :在一个数字列表中,选择最小的数字,与第一个位置的数字交换。然后在剩余的数中找出最小的数与第二位的数交换,以此类推,直到倒数第二个数与最后一个数比较。(以下按升序排列,即从小到大排列) 例子:$arr=array(6,3,8,2,9,1); 第一轮: 第一次比较,在(3,8,2,9,1)中比较第一个数6和3,6更大,当前最小数为3,位置为1 第二次比较是最小数3和(3,8在8,2,9,1中比较),3比较小,当前最小数是3,位置是1 第三次比较,最小数3与(3,8,2,9,1)中的2比较,3比较大,当前最小数为2,位置为3 第四次比较,最小数2比较with9in(3,8,2,9,1),2小,当前最小数为2,位置为3 的第五次比较,最小数2与(3,8,2,9,1),2较大,当前最小数为1,位置为5 第一轮比较完成后,确定最小数为1,小于第一个数字6,交换位置上的数字,交换后的结果为138296 总结:第一轮比较可以确定第一个位置的最小值。 第二轮: 第一轮比较,在(8,2,9,6)中3与8比较,3小,当前最小数为3,位置为1 的第二次比较,3和(8,2,9,6)中的2进行比较,3比较大,当前最小数为2,位置为3 第三次比较,2和(8中的9进行比较,2,9,6),2为小,当前最小数为2,位置为3 第四次比较,2与(8,2,9,6)中的6进行比较,2为小,当前最小数为2,位置为3 第二轮比较完成后,确定最小数为2,小于第二轮数3,位置中的数为交换。交换后结果为128396 总结:第二轮比较可以确定第二个仓位的最小值。至此,前两个位置的数字已经确定。 第三轮: 第一次比较,8与(3,9,6)中的3比较,8比较大,当前最小数为3,位置为3 第二次比较,3与(3,9,9,6),3小,当前最小数为3,位置为3 第三次比较,6与(3,9,6)中的6比较,3小,当前最小数为3,位置为3 经过三轮比较,确定最小数为3,小于第三个数8,交换位置中的数。交换后结果为123896 总结:第三轮比较可以确定第三个仓位的最小值。至此,前三位的数字已经确定。第四轮: 第一次比较,8与(9,6)中的9比较,8小,当前最小数为8,位置为3 第二次比较,8与(9,6)中6比较,8大,当前最小数为6,位置为5 第四轮比较完成后,确定最小数为6,小于第四个数8.交换该位置的数,交换后的结果为123698 总结:第四轮比较,可以确定第四个位置的最小值。至此,前四位的数字已经确定。第五轮: 第一次比较,9和8比较,9大,当前最小数为8,位置为5第五轮比较完成后,确定最小数为8,比第五个数字9小,交换位置中的数字,交换后结果为123689 总结:在第五轮比较中,可以确定第五个位置的最小值。至此,前5位的数字已经确定。结合以上五轮比较,每轮比较可以确定一个位置。对于N个数,比较N-1轮就可以确定N个位置的数,因为N-1个位置是确定的,最后一个位置也是确定的。向上。示例代码:选择排序实现思路双循环完成,外层控制轮数,当前最小值。内层控制的比较次数for($i=0;$i
