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

首頁 > 語言 > PHP > 正文

PHP簡單選擇排序(Simple Selection Sort)算法學習

2024-05-05 00:01:47
字體:
來源:轉載
供稿:網友

本文實例為大家分享了PHP簡單選擇排序的具體代碼,供大家參考,具體內容如下

基本思想:

通過 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);

復雜度分析:

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

最壞情況下,即待排序記錄初始狀態是按第一條記錄最大,之后的記錄從小到大順序排列,則需要移動記錄的次數最多為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)。

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


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

圖片精選

主站蜘蛛池模板: 建阳市| 漳州市| 全南县| 大邑县| 五大连池市| 沙湾县| 乌审旗| 攀枝花市| 涪陵区| 安仁县| 鹤峰县| 黄冈市| 类乌齐县| 馆陶县| 噶尔县| 海阳市| 景泰县| 武隆县| 翼城县| 武汉市| 民勤县| 华亭县| 博乐市| 通州区| 孟州市| 南岸区| 尼玛县| 崇信县| 乐昌市| 舞阳县| 台北市| 霍山县| 靖州| 双流县| 都安| 疏勒县| 来安县| 建德市| 四子王旗| 娄底市| 嘉祥县|