陣列快速排序

2021-10-04 19:22:28 字數 989 閱讀 2458

1. 如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,也就是是按照字元編碼的順序進行排序。

var arr=[9

,5,3

,10,23

,4,43

];var newarr = arr.

sort()

; console.

log(newarr)

;// [10, 23, 3, 4, 43, 5, 9]

// 也就是會以首數字為準進行排序--字典排序

2.有引數時 雙軸快排

sort()引數- - -可選規定排序順序。必須是函式,

且函式中有兩個引數 第乙個引數是陣列後面的元素值 第二個引數是陣列前面的元素值

// 雙軸快排 

var arr=[9

,5,3

,10,23

,4,43

];var newarr=arr.

sort

(function

(two,one));

console.

log(newarr)

;// [3, 4, 5, 9, 10, 23, 43]

3. 擴充套件 隨機排序

核心原理:

利用隨機數 math.random() 產生隨機數實在[0,1) 之間 ,用0.5減去隨機數,會隨機產生正數或者負數,隨後sort排序

var arr=[9

,5,3

,10,23

,4,43

];var newarr = arr.

sort

(function()

) console.

log(newarr)

;// 每次重新整理 產生新的陣列

陣列排序 快速排序

陣列排序 快速排序 1 陣列排序之快速排序 一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候 i 0,j n 1 2 以第乙個陣列元素作為關鍵資料,賦值給key,即 key a 0 3 從j開始向前搜尋,即由後開始向前搜尋 j j 1即j 找到第乙個小於key的值a j a i 與a ...

陣列快速排序

1.快速排序,就是首先找乙個基準,記作a,並且將陣列中小於a的元素全部排在a的左邊,並且將陣列中比a大的元素全部排在a的右邊 文中提到的 小於 大於 可以自行定義 經過這樣的排序,我們不用保證在a的左邊和右邊的元素維持著一種順序,只要全滿足小於a 和大於a即可。這是我們下一步要進行的工作 2.將a左...

快速排序(QuickSort) 陣列

對於快速排序的具體介紹就不用贅述了。這裡記錄幾點要點。設定l0,r0為需排序陣列的起點終點,l,r為檢查到達的位置。選取陣列的首端 l0 或者尾端 r0 元素為基準元素q,如果是l0則從r0開始往前檢查,r0則從l0開始往後檢查,很顯然,這樣的話基準元素q始終位於l或者r位置,最後排序完成時,r l...