摘要:描述選擇最小的元素由左到右依次交換順序即完成元素由小到大的排序。選擇排序重點在于選擇最小元素。選擇排序每次循環都能排好一個元素,因此需要交換的次數等于元素個數。
描述
選擇最小的元素由左到右依次交換順序即完成元素由小到大的排序。選擇排序重點在于選擇最小元素。以下是較為詳細的描述:
首先,把所有的數據循環一遍找到最小的數,然后和第一個數交換位置。
然后從第二個數起,一直循環到最后一個,找到最小的數和第二個交換。
如此一直找到最后一個。
選擇排序每次循環都能排好一個元素,因此需要交換的次數等于元素個數。選擇排序是最容易理解的排序方式,通俗的理解方式就是:在9個碗里放了9個蘋果,逐個看一眼找出最小的蘋果和第一個碗里的交換一下,然后不再看第一個碗,從第二個碗起,再玩一次,直到所有的碗都玩過。
代碼function selectionSort($needSortData) { $sortDataLength = count($needSortData); //計算出待排序元素數量 for ($i = 0; $i < $sortDataLength; $i++) //外層遍歷每一個待排序元素 { $min = $i; //外層遍歷把當前元素設置為最小值 for ($j = $i + 1; $j < $sortDataLength; $j++) {//然后從下一個元素開始依次和正在遍歷的元素比較,此層遍歷記為內層遍歷 if ($needSortData[$j] < $needSortData[$min]) { //遍歷到比此次最小值還小的元素,那么用$min記錄以下當前位置 //然后繼續遍歷,直到遍歷到最后,也就是說$min會記錄最小值的位置 $min = $j; } } //以下三行是把找到的最小值和正在外層遍歷的當前元素交換 $temp = $needSortData[$i]; $needSortData[$i] = $needSortData[$min]; $needSortData[$min] = $temp; } return $needSortData; } $unSortedData = [9, 1, 3, 8, 2, 6, 5, 7, 4]; $result=selectionSort($unSortedData); print_r($result);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29072.html
摘要:數據結構常見數據結構數組是最簡單而且應用最廣泛的數據結構特征使用連續內存空間來存儲存放相同類型或著衍生類型的元素數組比較特別,可以存放八種數據類型通過下標來訪問集合特征保存不重復的元素字典特征就是關聯數組,以形式存儲棧,與隊列相似特征存儲數 數據結構 常見數據結構 Array 數組是 最簡單 而且 應用最廣泛 的數據結構 特征: 1、使用連續內存空間來存儲 2、存放相同類型或著衍生類型...
摘要:而在證明算法是正確的基礎上,第二步就是分析算法的時間復雜度。算法的時間復雜度反映了程序執行時間隨輸入規模增長而增長的量級,在很大程度上能很好反映出算法的優劣與否。 showImg(https://segmentfault.com/img/remote/1460000016451712?w=800&h=341); 前言 雖然工作中,你覺得自己并沒有涉及到算法這方面的東西,但是算法是程序的...
摘要:插入排序是穩定的算法。所以準確的說,當數組長度大于的時候,采用了快速排序和插入排序的混合排序方法。在對數組進行了一次快速排序后,然后對兩個子集分別進行了插入排序,最終修改數組為正確排序后的數組。 JavaScript 專題系列第二十篇,也是最后一篇,解讀 v8 排序源碼 前言 v8 是 Chrome 的 JavaScript 引擎,其中關于數組的排序完全采用了 JavaScript 實...
摘要:二選擇排序原理在一列數字中,選出最小數與第一個位置的數交換。至此確定了前兩個位置上的數。示例代碼選擇排序實現思路雙重循環完成,外層控制輪數,當前的最小值。 二、選擇排序 原理: 在一列數字中,選出最小數與第一個位置的數交換。然后在剩下的數當中再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最后一個數比較為止。(以下都是升序排列,即從小到大排列) 舉例說明: $arr =...
摘要:排序嚴格來說不算數據結構,更應該歸于算法一類,因為數據結構指的是數據與數據之間的關系,排序參與其中,更多的是讓數據狀態發生了改變。 排序嚴格來說不算數據結構,更應該歸于算法一類,因為數據結構指的是數據與數據之間的關系,排序參與其中,更多的是讓數據狀態發生了改變。于是,我們開始用PHP來聊聊算法。 引子 其實有一句話說的是不錯的,不必重復造輪子,所以下面我將引用別人的文章作為本文的引文,...
閱讀 3318·2019-08-29 16:17
閱讀 1975·2019-08-29 15:31
閱讀 2645·2019-08-29 14:09
閱讀 2548·2019-08-26 13:52
閱讀 744·2019-08-26 12:21
閱讀 2125·2019-08-26 12:08
閱讀 991·2019-08-23 17:08
閱讀 1922·2019-08-23 16:59