3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
此篇文章瀏覽量: 845 解決問題的方法:各個擊破法,即稱為 Divide-and-Conquer,是一種知名度很高的遞迴技術;而當中最重要的一個就是快速排序法(Quicksort),演算速度比 選擇排序法(Selection Sort) 快很多,快速排序法是目前最快的排序演算法之一。  實作原理 基本情況:當一個陣列是空陣列或只有一個元素的陣列,則不需要排序,直接回傳即可,例:[]、[5]。 一般情況:當陣列的元素大於等於2的時候,就要進行排序。而排序的規則如下: 以該陣列的第一個元素為基準值 由所有小於等於基準值的數字組成的子陣列 由所有大於基準值的數字組成的子陣列 最後將上述三點所形成的各陣列合併起來,並搭配遞迴演算法的原理回傳即可。 Node.js code 轉換成 JS 程式碼的話,如下: var quick_sort = function(arr){ if (arr.length < 2) return arr else var middle_value = arr[0] var left_arr = [] var right_arr = [] arr.forEach(function(value, index) { if(index >= 1){ if(value <= middle_value){ left_arr.push(value) }else{ right_arr.push(value) } } }); return ((quick_sort(left_arr)).concat([middle_value])).concat(quick_sort(right_arr)) } 實際比較 以下影片的中間,就是 快速排序法(quicksort),可看出是最快排序完成的。 若覺得文章有幫助,請多分享,讓其他同好也能吸收網站技能知識。 Facebook Twitter

本文由carlos-studiocom提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦