递归:对于长度太大的数组,采用尾调用,防止内存溢出算法
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; }