js實現資料結構及演算法之排序演算法

2021-09-11 13:22:35 字數 2211 閱讀 8973

氣泡排序是最慢的排序演算法之一,資料值會像起跑一樣從陣列的一端漂浮到另一端

var carray = function

() function swap(arr, index1, index2)

function

bubblesort

() }

}}var aa= new carray()

aa.bubblesort()

console.log(aa.datastore)複製**

從陣列的開頭開始,將第乙個元素和其他元素相比,最小的元素放在第乙個位置,再從第二個位置開始

var carray = function

() function swap(arr, index1, index2)

function

selectsort

() }

this.swap(this.datastore, outer, min)

}}var aa= new carray()

aa.selectsort()

console.log(aa.datastore)複製**

類似人們按數字或字母順序對資料進行排序,後面的要為前面的騰位置

var carray = function

() function

insertsort

() this.datastore[inner] = temp

// console.log('outer->',this.datastore)

}}var aa= new carray()

aa.insertsort()

console.log(aa.datastore)複製**

它會首先比較較遠的元素而非相鄰的元素,讓元素盡快回到正確的位置。

通過定義乙個間隔序列來表示在排序過程中進行的元素間隔。

公開的間隔序列是701,301,132,57,23,10,4,1

var carray = function

() function

shellsort

() this.datastore[j] = temp

}console.log('調換後-》', this.datastore)

}}//動態的希爾排序

function

dynamisort

() while(h>=1)

}console.log('調整後-》',this.datastore)

h = (h-1) / 3

}}function swap(arr, index1, index2)

var aa= new carray()

// aa.shellsort()

aa.dynamisort()

console.log(aa.datastore)複製**

把一系列排好序的子串行合併成為乙個大的完整有序序列

// 歸併排序

function mergesort(arr)

var middle = math.floor(len / 2)

var left = arr.slice(0, middle)

var right = arr.slice(middle)

return mergearray(mergesort(left), mergesort(right));

}//融合兩個有序陣列

function mergearray(left, right) else

} return arr.concat(left, right)

}var arr = [2,3,4,12,324,34,5,89,7654,8,9]

console.log(mergesort(arr))複製**

在列表中選擇乙個元素為基準值,排序圍繞這個基準值進行,將列表中小於基準值得放底部,大於的放頂部

// 快速排序

function qsort(list) else

} return qsort(lesser).concat(pivot, qsort(greater))

}var arr = [4,3,5,2]

console.log(qsort(arr))複製**

資料結構之排序演算法

1.插入排序 直接插入排序 include void insertsort int unsort int length unsort j temp int main void insertsort num,7 int i 0 for i i 7 i return 0 折半插入排序 include v...

資料結構之排序演算法

學過好久的東西,感覺都忘記的差不多了,雖然可能日常寫 的過程之中也可能寫過一些演算法,但是從來都沒有規整,最近忙裡偷閒,寫點關於排序的演算法,當然好多人都寫過一些很不錯的演算法blog,我寫一下,只是方便自己日後檢視,當然也給有需要的朋友一些參考,歡迎指正 排序演算法有 氣泡排序,選擇排序,插入排序...

資料結構之排序演算法

1 直接插入排序 將乙個記錄插入到已經排好序的有序表中,只有當排序結束時每個元素才能進入到正確的位置,複雜度為o n2 優點 演算法簡單 易行,當待排序記錄數量較少時,該演算法非常有效 缺點 資料規模較大時,效率比較低。演算法insertsort r,n insertsort1.插入排序 for j...