直接選擇排序
直接選擇排序(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次,得到乙個按排序碼從小到大排列的有序序列
選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則www.cppcns.com它不會被移動。選擇排序每次交換一對元素,它們當中至少有乙個將被移到其最終位置上,因此對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,89,53,98,25,37,92,12]
首先取i=1;a[i]為最小值,將後面的值與a[i]比較,若比a[www.cppcns.comi]小,則與a[i]交換位置,$i++
[5,12,89,98,53,37,92,25]
重複上述步驟
php**實現
function select_sort($arr)
}$temp=$arr[$i];
$arr[$i]=$arr[$min];
$arr[$min]=$temp;
} return $arr;
}本文標題: php排序演算法系列之直接選擇排序詳解
本文位址: /wangluo/php/216657.html
選擇排序 演算法系列
選擇排序 思想 選擇排序的思想也非常簡單,就是從一堆數中選出最小值,然後和頂部元素互換,之後再用同樣的方法排序剩餘的數,最終得到排序的結果。using system using system.collections.generic using system.linq using system.tex...
經典演算法系列之 選擇排序
1 前言 演算法,在計算機中的地位,就相當於人類大腦的決策中樞系統,哪怕最簡單的演算法,其精妙的思維方式,都可以讓人開啟一扇新的視窗。演算法,它不僅僅只是狹義的用來解決電腦科學領域的問題,更是一種 思維方式 演算法思維,是一種深度思考和創造的過程。演算法,只有真正理解了,而不只是所謂的知道,並將應用...
排序演算法系列之選擇排序 2
選擇排序原理 在長度為nd 陣列中,找到位置不適合的元素,直接放入最終合適的位置上,也就是依次在未排序陣列中找到最小元素,直到最後乙個元素位置 剩下的最後乙個元素n 2最大,無需操作 每輪從無序陣列中找到的最小資料,依次放入到從data 0 到data n 2 中 優點 賦值次數少 缺點 忽略了資料...