加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP排序算法系列之直接选择排序详解

发布时间:2021-04-01 20:19:02 所属栏目:编程 来源:网络整理
导读:直接选择排序 直接选择排序(Straight Select Sorting) 的根基头脑是:第一次从R[0]~R[n-1]中选取最小值,与R[0]互换,第二次从R[1]~R[n-1]中选取最小值,与R[1]互换,….,第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]互换,…..,第n-1次从R[n-2]~R[n-1]中

直接选择排序

直接选择排序(Straight Select Sorting) 的根基头脑是:第一次从R[0]~R[n-1]中选取最小值,与R[0]互换,第二次从R[1]~R[n-1]中选取最小值,与R[1]互换,….,第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]互换,…..,第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n-2]互换,总共通过n-1次,获得一个按排序码从小到大分列的有序序列·

选择排序的首要利益与数据移动有关。假如某个元素位于正确的最终位置上,则它不会被移动。选择排序每次互换一对元素,它们傍边至少有一个将被移到其最终位置上,因此对n个元素的表举办排序总共举办至多n-1次互换。在全部的完全依赖互换去移动元素的排序要领中,选择排序属于很是好的一种。

道理

起首在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继承探求最小(大)元素,然后放到已排序序列的末端。以此类推,直到全部元素均排序完毕。

例子

设数组为a[0…n-1]。 1.初始时,数组全为无序区为a[0..n-1]。令i=0 2.在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]互换。互换之后a[0…i]就形成了一个有序区。 3.i++并一再第二步直到i==n-1。排序完成。

举例

对数组[53,89,12,98,25,37,92,5]举办排序

起首取i=0;a[i]为最小值,将后头的值与a[i]较量,若比a[i]小,则与a[i]互换位置,$i++

[5,53,12]

起首取i=1;a[i]为最小值,将后头的值与a[i]较量,若比a[i]小,则与a[i]互换位置,25]

一再上述步调

PHP代码实现

$arr[$j]) { $min=$j; } } $temp=$arr[$i]; $arr[$i]=$arr[$min]; $arr[$min]=$temp; } return $arr; }

以上就是本文的所有内容,但愿对各人的进修有所辅佐,也但愿各人多多支持编程之家。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读