这篇文章给大家介绍使用PHP怎么实现一个直接选择排序算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>直接选择排序强>
直接选择排序(直接选择排序)的基本思想的是:第一次从[0]~ R (n - 1)中选取最小值,与R[0]交换,第二次从[1]~ R (n - 1)中选取最小值,与R[1]交换,…,我第次从(张)~ R (n - 1)中选取最小值,与R(张)交换,……,第n - 1次从[n] ~ R (n - 1)中选取最小值,与R (n)交换,总共通过n次,得到一个按排序码从小到大排列的有序序列·
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n - 1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
<强>原理强>
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
<强>例子强>
设数组为[0…n - 1]。
1。初始时,数组全为无序区为[0 . .n - 1]。令我=0
2。在无序区(我…n - 1)中选取一个最小的元素,将其与一个[我]交换。交换之后一个[0…我]就形成了一个有序区。
3.我+ +并重复第二步直到我==n - 1。排序完成。
<强>举例强>
对数组(98年53岁,89年,12日,25日,37岁,92年,5]进行排序
首先取我=0;一个[我]为最小值,将后面的值与一个[我]比较,若比[我]小,则与一个[我]交换位置,美元我+ +
[89, 53岁,98年,25岁,37岁,92年,12]
首先取i=1;一个[我]为最小值,将后面的值与一个[我]比较,若比[我]小,则与一个[我]交换位置,美元我+ +
(89年5日,12日,98年,53岁,37岁,92年,25)
重复上述步骤
PHP代码实现
function select_sort (arr) { 美元才能长度=count ($ arr); for 才能;(i=0;美元,美元小姐:& lt; length-1 美元;;,我+ +美元),{ ,,,for (j=i + 1美元,美元min=$ i;, j 美元;& lt; length 美元;;,$ j + +), { ,,,,,if (arr [min美元]祝辞arr美元[j]美元),{ ,,,,,,,min=$ j美元; ,,,,,} ,,,} ,,,的arr temp=美元($ i); ,,,arr [$ i]=arr美元(美元分钟); ,,,arr [min美元]=temp美元; ,,} return 才能;arr美元; }
关于使用PHP怎么实现一个直接选择排序算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。