<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在日常研發的過程中,我們無時無刻都在考慮自己開發的程式是否高效,一段好的程式執行離不開對演演算法的深刻認識和熟練掌握。接下來的日子,我將帶著大家一起重溫一下常見的幾種演演算法。
先上大圖:
下面我們一起來學習一下 快速排序演演算法 吧!
維基百科介紹: 快速排序使用分治法(Divide and conquer)策略來把一個序列(list)分為較小和較大的2個子序列,然後遞迴地排序兩個子序列,最終合併得到一個從小到大的序列。
有聰明的小夥伴就會問了:什麼是分治法策略呢?
字面上的解釋是“分而治之”,就是把一個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合併。
由此就可以引出我們今天講的快速排序演演算法的實現步驟了:
void main() { List<int> quickSort(List<int> arr) { // 處理邊界問題 if (arr.length <= 1) { return arr; } // 取出第一個值作為參考 int splitData = arr[0]; // 小於參考值的集合 List<int> low = []; // 大於參考值的集合 List<int> hight = []; // 與參考相等的集合 List<int> mid = []; // 初次把參考值新增到mid中 mid.add(splitData); for (int i = 1; i < arr.length; i++) { if (arr[i] < splitData) { // 小於 low.add(arr[i]); } else if (arr[i] > splitData) { // 大於 hight.add(arr[i]); } else { // 等於 mid.add(arr[i]); } } // 二分資料後,再繼續遞迴整理 low = quickSort(low); hight = quickSort(hight); // 最後合併 return [...low, ...mid, ...hight]; } const List<int> ary = [4, 5, 1, 3, 6, 2, 5, 6, 7, 2, 4]; print(quickSort(ary)); }
至此,我們就重新溫習了一下 快排演演算法 !
更多關於Flutter Dart快速排序演演算法的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45