标签:位置 else span 选择排序 方法 代码 log 开始 insert
var arr=[8,4,5,7,1,3,6,2]
function insertionSort(arr){
for(var i=1;i<arr.length;i++){
var tmp=arr[i]
for(var j=i-1;j>=0;j--){
if(tmp>=arr[j]){break}
arr[j+1]=arr[j]
}
j==-1?arr[0]=tmp:arr[j+1]=tmp
}
}
insertionSort(arr)
console.log(arr)
var arr=[8,4,5,7,1,3,6,2]
function swap(a,i,j){
var tmp=a[i]
a[i]=a[j]
a[j]=tmp
}
function selectSort(arr){
for(var i=0;i<arr.length-1;i++){
var min=arr[i]
var minindex=i
for(var j=i;j<arr.length;j++){
if(arr[j]<min){
min=arr[j]
minindex=[j]
}
}
// 找到最小元素后,与当前元素交换
swap(arr,i,minindex)
}
}
selectSort(arr)
console.log(arr)
var arr=[8,4,5,7,1,3,6,2]
function swap(a,i,j){
var tmp=a[i]
a[i]=a[j]
a[j]=tmp
}
function bubbleSort(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length;j++){
if(arr[j]>arr[j+1]){
swap(arr,j,j+1) //逆序交换
}
}
}
}
bubbleSort(arr)
console.log(arr)
var arr=[8,4,5,7,1,3,6,2]
function merge(arr,l,m,r){
var newx=new Array(arr.length)
var i
var j
// 升序排列
for(i=m+1;i>l;i--){newx[i-1]=arr[i-1]}
// 降序排列
for(j=m;j<r;j++){newx[r+m-j]=arr[j+1]}
console.log(newx,i,j)
for(var k=l;k<=r;k++){
if(newx[j]<newx[i]){
arr[k]=newx[j--]
}else{
arr[k]=newx[i++]
}
}
}
function mergeSort(arr,l,r){
if(l>=r){return}
var m=Math.floor((l+r)/2)
mergeSort(arr,l,m)
mergeSort(arr,m+1,r)
merge(arr,l,m,r)
}
mergeSort(arr,0,arr.length-1)
标签:位置 else span 选择排序 方法 代码 log 开始 insert
原文地址:https://www.cnblogs.com/ailingstar/p/12443992.html