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

首頁 > 語言 > PHP > 正文

PHP排序算法之簡單選擇排序(Simple Selection Sort)實例分析

2024-05-05 00:03:18
字體:
來源:轉載
供稿:網友

本文實例講述了PHP排序算法之簡單選擇排序(Simple Selection Sort)。分享給大家供大家參考,具體如下:

基本思想:

通過 n - i 次關鍵字間的比較,從 n - i + 1 個記錄中選出關鍵字最小的記錄,并和第 i (1 <= i <= n) 個記錄交換,執行n-1趟 后就完成了記錄序列的排序。

算法實現:

<?php//簡單選擇排序//交換函數function swap(array &$arr,$a,$b){  $temp = $arr[$a];  $arr[$a] = $arr[$b];  $arr[$b] = $temp;}//簡單選擇排序算法function SelectSort(array &$arr){  $count = count($arr);  for($i = 0;$i < $count - 1;$i ++){    //記錄第$i個元素后的所有元素最小值下標    $min = $i;    for($j = $i + 1;$j < $count;$j ++){      if($arr[$j] < $arr[$min]){        $min = $j;      }    }    if($min != $i){      swap($arr,$min,$i);    }  }}$arr = array(9,1,5,8,3,7,4,6,2);SelectSort($arr);var_dump($arr);

運行結果:

array(9) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) [7]=> int(8) [8]=> int(9)}

復雜度分析:

在簡單選擇排序過程中,所需移動記錄的次數比較少。最好情況下,即待排序記錄初始狀態就已經是正序排列了,則不需要移動記錄。

最壞情況下,即待排序記錄初始狀態是按第一條記錄最大,之后的記錄從小到大順序排列,則需要移動記錄的次數最多為3(n-1)。簡單選擇排序過程中需要進行的比較次數與初始狀態下待排序的記錄序列的排列情況無關。當i=1時,需進行n-1次比較;當i=2時,需進行n-2次比較;依次類推,共需要進行的比較次數是(n-1)+(n-2)+…+2+1=n(n-1)/2,即進行比較操作的時間復雜度為O(n^2),進行移動操作的時間復雜度為O(n)

簡單選擇排序是不穩定排序。

本文參考自《大話數據結構》,在此僅作記錄,方便以后查閱,大神勿噴!

 

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 广灵县| 马鞍山市| 进贤县| 门源| 玉龙| 广宁县| 广丰县| 宁夏| 大石桥市| 宁波市| 望城县| 桑植县| 开平市| 鹤庆县| 沙湾县| 蒙山县| 偏关县| 房产| 黄梅县| 嘉兴市| 通江县| 南涧| 平顶山市| 慈利县| 雅安市| 陇南市| 巴东县| 双柏县| 龙井市| 西林县| 麻城市| 大石桥市| 黄浦区| 潍坊市| 北票市| 从化市| 太和县| 潼南县| 桃园县| 霸州市| 泉州市|