冒泡排序
Array.prototype.bubbleSort=function(){
let tmp
for(let i=0;i<this.length;i++){
for(let j=0;j<this.length-1-i;j++){
if(this[j]>this[j+1]){
tmp=this[j]
this[j]=this[j+1]
this[j+1]=tmp
}
}
}
return this
}
let arr=[5,11,3,4,78,33]
console.log(arr.bubbleSort())
选择排序
Array.prototype.selectionSort=function(){
let tmp
let minIndex
for(let i=0;i<this.length-1;i++){
minIndex=i
for(let j=i+1;j<this.length;j++){
if(this[j]<this[minIndex]){
minIndex=j
}
}
tmp=this[i]
this[i]=this[minIndex]
this[minIndex]=tmp
}
return this
}
let arr=[5,11,3,4,78,33]
console.log(arr.selectionSort())
插入排序
Array.prototype.insertSort=function(){
for(let i=1;i<this.length;i++){
let current=this[i]
perIndex=i-1
while(perIndex>=0&&this[perIndex]>current){
this[perIndex+1]=this[perIndex]
perIndex--
}
this[perIndex+1]=current
}
return this
}
let arr=[5,11,3,4,78,33]
console.log(arr.insertSort())
快速排序
Array.prototype.quickSort=function(){
function quickSort(arr){
if(arr.length<=1){
return arr
}
let left=[]
let right=[]
let pivotIndex=parseInt(arr.length/2)
let pivot=arr.splice(pivotIndex,1)[0]
for(let i=0;i<arr.length;i++){
if(arr[i]<pivot){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
return [...quickSort(left),pivot,...quickSort(right)]
}
return quickSort(this)
}
let arr=[5,11,3,4,78,33]
console.log(arr.quickSort())