使用PHP怎么实现一个直接选择排序算法

  介绍

这篇文章给大家介绍使用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怎么实现一个直接选择排序算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用PHP怎么实现一个直接选择排序算法