排序算法的动画网站 https://math.hws.edu/eck/jsdemo/sortlab.html
- 冒泡排序
window.onload = function(){
var temp
var arr = [1,2,3,5,4,6,8,10,9,11,12]
for(var i=0; i<arr.length-1; i++){
for(var j=0; j<arr.length-i-1; j++){
if(arr[j]>arr[j+1]){
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
console.log(arr)
}
- 快速排序
<script>
function quickSort(arr) {
if(arr.length < 2 ){
return arr
}
var middle = Math.floor(arr.length/2)
var middleData = arr.splice(middle, 1)[0]
let left = []
let right = []
for(var i = 0; i<arr.length; i++){
if(arr[i] < middleData){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
console.log(left, right)
return quickSort(left).concat(middleData,quickSort(right))
}
var arr = [9,7,5,3,1,2,4,6,8]
console.log(quickSort(arr))
</script>
- 插入排序
function insertSort(arr){
for(var i = 1; i<arr.length; i++){
if(arr[i]<arr[i-1]){
var min = arr[i]
arr[i] = arr[i-1]
var j = i-1
while(j >= 0 && arr[j]>min){
arr[j+1] = arr[j]
j--
}
arr[j+1] = min
}
}
return arr
}
var Arr = [9,7,5,3,1,2,4,6,8]
console.log(insertSort(Arr))