選擇排序
選擇排序是表現最穩定的排序演算法之一,當用到它的時候,資料規模越小越好。理論上講,選擇排序可能也是平時排序一般人想到最多的方法。
選擇排序是一種簡單直覺的排序演算法。它的工作原理是:
遍歷一個數組,在此過程中,找出數組中的最大值及其位置。然後將該最大值的單元,跟數組的最後一個單元“交換位置”,這樣進行一趟,數組中的最大值就一定放在最後位置了。
將上述過程中剩餘的資料繼續遍歷一次,並做同樣的事情,則此時剩餘部分的最大值也能夠放在剩餘部分的最後位置-對整體而言就是倒數第二的位置。
依此類推。 。 。 。 。 。
圖示:
#原始陣列 |
# 18 | 22 |
12 | 15 | 23 |
9 |
#第一趟 | 18 |
22 | #12 | 15 | ##923 | |
18 | #9 | 12 | 15 | 22 | 23 | |
#15 | 9 | 12 | 18 | 22 | 23 | |
12 | 9 | 15 | 18 | 22 | 23 | |
9 | 12 | 15 | 18 | 22 | #23 |
程式碼如下:
<?php $arr1 = array(18,22,12,15,23,9); $n = count($arr1); for ($i=0; $i < $n-1; $i++) { //找最大值 $max = $arr1[0]; $max_key = 0; for ($k=0; $k < $n - $i; $k++) { if ($arr1[$k] > $max) { $max = $arr1[$k]; $max_key = $k; } } //交换 $temp = $arr1[$max_key]; $arr1[$max_key] = $arr1[$n-1-$i]; $arr1[$n-1-$i] = $temp; }
總結法則:
1.要進行從頭到尾找出其中的最大值(及下標),並進行交換的趟數為$n-1,$n為數組長度#2.每一趟要做的事情是:a)找最大值,吧)並將該最大值跟這一趟的最後一項進行交換;3.每一趟要從中找最大值的資料個數都比前一趟少1,其中第一趟有$n個。
#
以上是選擇排序演算法詳細解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器