摘要:插入排序插入排序是穩(wěn)定的排序方法時間復(fù)雜度冒泡排序插入排序是穩(wěn)定的排序方法時間復(fù)雜度快速排序插入排序是不穩(wěn)定的排序方法時間復(fù)雜度選擇排序簡單選擇排序這種簡單選擇排序是穩(wěn)定的排序方法時間復(fù)雜度堆排序堆排序是
1.插入排序
function insertSort(array){ var i = 0, j = 0, len = array.length, flag = 0 for(i=1; i=0 && flag < array[j]; j--){ array[j+1] = array[j] } array[j+1] = flag } } }
插入排序是穩(wěn)定的排序方法
時間復(fù)雜度 O(n2)
2.冒泡排序function bubbleSort(array){ var i = 0, j = 0, len = array.length for(i=0; i插入排序是穩(wěn)定的排序方法
時間復(fù)雜度 O(n2)
3.快速排序function partition(array, low, high){ var flag = array[low] while(low=flag && low 插入排序是不穩(wěn)定的排序方法
時間復(fù)雜度 O(nlogn)
4.選擇排序 簡單選擇排序function selectSort(array){ var i = 0, j = 0, temp = 0, len = array.length for(i=0; i< len; i++){ j = array.indexOf(Math.min.apply(null, array.slice(i))) if(i!==j){ temp = array[i] array[i] = array[j] array[j] = temp } } }這種簡單選擇排序是穩(wěn)定的排序方法
時間復(fù)雜度 O(n2)
堆排序function HeapAdjust(array, s, m){ var key = array[s] for(var j = 2*s; j<=m; j*=2){ if(j= array[j]){ break } array[s] = array[j] s = j } array[s] = key } function heapSort(array){ array.unshift(0) var i = 0, length = array.length - 1 for(i=Math.floor(length/2); i>0; i--){ HeapAdjust(array, i, length) } for(i=length; i>0; --i){ var temp = array[i] array[i] = array[1] array[1] = temp HeapAdjust(array, 1, i-1) } } 堆排序是不穩(wěn)定的排序方法
時間復(fù)雜度 O(nlogn)
5.歸并排序function merge(left, right){ let result = [] while(left.length && right.length){ if(left[0] <= right[0]){ result.push(left.shift()) }else { result.push(right.shift()) } } if(left.length){ return result.concat(left) } if(right.length){ return result.concat(right) } } function mergeSort(array){ if(array.length <= 1){ return array } let mid = Math.ceil(array.length / 2), left = array.slice(0, mid), right = array.slice(mid) return merge(mergeSort(left), mergeSort(right)) }歸并排序是不穩(wěn)定的排序方法
時間復(fù)雜度 O(nlogn)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88332.html
摘要:下安裝開發(fā)調(diào)試環(huán)境從事開發(fā)已經(jīng)近兩年了,之前調(diào)試一直是通過古老的和配合,自從接觸以來一直不習(xí)慣這種動態(tài)語言的的調(diào)試方式,一直想用一用像靜態(tài)語言那樣調(diào)試。安裝是上的軟件包管理工具,類似于上的,非常好用。安裝后的軟件可以通過命令查看,目錄在。 Mac下安裝PHP開發(fā)調(diào)試環(huán)境(ngnix+php72+xdebug) ????從事php開發(fā)已經(jīng)近兩年了,之前調(diào)試一直是通過古老的echo和die...
摘要:下載源碼包下載源碼包最后將添加到中,查看擴(kuò)展,出現(xiàn)則安裝成功安裝安裝用于對異步客戶端的支持重新編譯使用命令檢測安裝的擴(kuò)展時可能會出現(xiàn)一下警告解決方案在最后一行添加安裝同步擴(kuò)展最后將添加到中,查看擴(kuò)展,出現(xiàn)則安裝成功 1、下載PHP源碼包 http://php.net/get/php-7.2.4.... tar -zxvf php-7.2.4.tar.gz cd php-7.2.4 ....
摘要:最近團(tuán)隊(duì)在不斷完善項(xiàng)目中的單元測試用例,會用到代碼覆蓋率分析,本來以為應(yīng)該默認(rèn)安裝了,所以使用來生成報(bào)告,但是執(zhí)行后提示如下錯誤這是因?yàn)闆]有安裝或啟用導(dǎo)致。 最近團(tuán)隊(duì)在不斷完善項(xiàng)目中的單元測試用例,會用到代碼覆蓋率分析,本來以為 homestead 應(yīng)該默認(rèn)安裝了 xdebug ,所以使用 phpunit --coverage-html ./tests/codeCoverage 來生成...
閱讀 2380·2019-08-30 15:56
閱讀 1039·2019-08-30 15:55
閱讀 3203·2019-08-30 15:44
閱讀 933·2019-08-30 10:53
閱讀 1888·2019-08-29 16:33
閱讀 2470·2019-08-29 16:13
閱讀 719·2019-08-29 12:41
閱讀 874·2019-08-26 13:56