遞歸:對於長度太大的數組,採用尾調用,防止內存溢出算法
function foo(index,len){ if(len>0){ if(index<len){ if(ary[index]>ary[index+1]){ var item=ary[index]; ary[index]=ary[index+1]; ary[index+1]=item; } rturn foo(index+1,len) }else { return foo(0,len-1); } }else { return ary } } foo(0,ary.length-1);
冒泡:數組
for(var j=ary.length-1;j>0;j--){ for(var i=0;i<j;i++){ if(ary[i]>ary[i+1]){ var item=ary[i]; ary[i]=ary[i+1]; ary[i+1]=item; } } }
冒泡算法優化優化
for(var j=ary.length-1;j>0;j--){ var isChange = false; for(var i=0;i<j;i++){ if(ary[i]>ary[i+1]){ var item=ary[i]; ary[i]=ary[i+1]; ary[i+1]=item; ischange = true; } } if(!isChange) return; }