比較所有相鄰元素,如果第乙個比第二個大,則交換它們。執行n-1輪,則完成排序。
array.prototype.
bubblesort
=function()
// console.log(this);
} console.
log(
this);
}}const arr =[25
,84,21
,47,15
,27,68
,35,20
];arr.
bubblesort()
;
定基準:從陣列中任意選擇乙個基準(可以是第乙個元素);
分割槽:所有比基準小的元素放在基準前面,比基準大的元素放在基準後面,形成左右兩個分割槽;
遞迴:遞迴地對基準前後的陣列進行分割槽。
array.prototype.
quicksort
=function
(arr)
const left =
;const right =
;const mid = arr[0]
;for
(let i =
1; i < arr.length; i++
)else
}return
[...
res(left)
, mid,
...res
(right)]}
console.
log(
this);
const result =
res(
this);
console.
log(result)
; result.
foreach
((item, i)
=>
) console.
log(
this);
}const arr =[25
,84,21
,47,15
,27,68
,35,20
];arr.
quicksort()
;
演算法的動畫效果可以在此處**:visualgo.net JS實現氣泡排序和快排
冒泡的核心思想 每一輪確定乙個最大的數放到最右邊。就是雙重for迴圈遍歷,進行兩兩比較。核心思想 每一輪比較,把乙個數歸位 function bubblesort arr,arrlength 注意 外層迴圈的條件 i arrlength 1.這個裡面沒有 因為,最後乙個數不需要再迴圈確定位置,其他數...
排序演算法(快排,冒泡)
排序目的 快速查詢 排序演算法優劣的判斷條件 1.時間複雜度 2.空間複雜度 3.穩定性 關鍵字值相等的數字們,排完序之後順序不變 十大排序演算法 需要掌握的的 氣泡排序 快速排序 希爾排序 折半插入排序 堆排序 氣泡排序 依次比較第i個數與第i 1個數的大小,如果符合條件則不變,如果不符合條件,兩...
排序演算法二氣泡排序和快排
氣泡排序想必大家都非常熟悉了,這裡就直接貼 了 void bubblesort int array,int len if flag 1 break 時間複雜度為o n n 最好的情況下 優化後正序有序為o n 穩定的演算法。沒有優化的與原始序列的狀態無關,優化後與原始序列的狀態有關 paration...