国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 邏輯算法 > 正文

PHP排序算法系列之直接選擇排序的詳解

2020-03-22 17:29:03
字體:
供稿:網(wǎng)友
這篇文章主要為大家詳細(xì)介紹了PHP排序算法系列之直接選擇排序的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

直接選擇排序

直接選擇排序(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次,得到一個(gè)按排序碼從小到大排列的有序序列·

選擇排序的主要優(yōu)點(diǎn)與數(shù)據(jù)移動(dòng)有關(guān)。如果某個(gè)元素位于正確的最終位置上,則它不會(huì)被移動(dòng)。選擇排序每次交換一對(duì)元素,它們當(dāng)中至少有一個(gè)將被移到其最終位置上,因此對(duì)n個(gè)元素的表進(jìn)行排序總共進(jìn)行至多n-1次交換。在所有的完全依靠交換去移動(dòng)元素的排序方法中,選擇排序?qū)儆诜浅:玫囊环N。

原理

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最?。ù螅┰?,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

例子

設(shè)數(shù)組為a[0…n-1]。
1.初始時(shí),數(shù)組全為無序區(qū)為a[0..n-1]。令i=0
2.在無序區(qū)a[i…n-1]中選取一個(gè)最小的元素,將其與a[i]交換。交換之后a[0…i]就形成了一個(gè)有序區(qū)。
3.i++并重復(fù)第二步直到i==n-1。排序完成。

舉例

對(duì)數(shù)組[53,89,12,98,25,37,92,5]進(jìn)行排序

首先取i=0;a[i]為最小值,將后面的值與a[i]比較,若比a[i]小,則與a[i]交換位置,$i++

[5,89,53,98,25,37,92,12]

首先取i=1;a[i]為最小值,將后面的值與a[i]比較,若比a[i]小,則與a[i]交換位置,$i++

[5,12,89,98,53,37,92,25]

重復(fù)上述步驟

PHP代碼實(shí)現(xiàn)

function select_sort($arr){ $length=count($arr); for ($i=0; $i $length-1 ; $i++) { for ($j=$i+1,$min=$i; $j $length ; $j++) { if ($arr[$min] $arr[$j]) { $min=$j; $temp=$arr[$i]; $arr[$i]=$arr[$min]; $arr[$min]=$temp; return $arr;}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持php 。

您可能感興趣的文章:

PHP排序算法系列之插入排序的詳解

PHP實(shí)現(xiàn)桶排序算法的講解

關(guān)于Laravel Service Provider開發(fā)設(shè)置延遲加載時(shí)遇到的問題詳解

以上就是PHP排序算法系列之直接選擇排序的詳解的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大洼县| 沂源县| 扎兰屯市| 酉阳| 上杭县| 贵港市| 阳朔县| 滁州市| 沁阳市| 顺义区| 中牟县| 堆龙德庆县| 桦甸市| 瓮安县| 巍山| 凤山市| 砀山县| 宁国市| 桑植县| 湖南省| 南丰县| 衡阳市| 舒兰市| 绥江县| 莱西市| 阿拉善左旗| 开鲁县| 延吉市| 广德县| 武山县| 浮梁县| 沾益县| 板桥市| 灵璧县| 南城县| 出国| 清新县| 来安县| 惠东县| 抚松县| 梁山县|