javascript中 ,冒泡排序也是很重要的一种排序方式,这种方式有固定的格式
var arr1=[2,31,33,54,65,-32];function f1(arr){ for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-i-1;j++){ // 这里用length-i-1 是因为每一次比较之后,都可以减少下次的排序次数。 if(arr[j]<arr[j+1]){ //此条决定是按顺序还是倒序排列 var temp=arr[j]; //temp的作用是给予一个中转点,用于临时存储值,方便arr[j]和arr[j+1]调换位置 arr[j]=arr[j+1]; arr[j+1]=temp; } } }return arr;} console.log(f1(arr1)); 简单的递归 递归算法是重要的一种算法,所谓递归就是自己调用自己的一种方法,需要注意递归一定要有个出口,也就是一定要有一个结束递归的条件,否则的话,就会产生思想循环。
function getNum(num){ if(num <1){ return 1; }else{ return getNum(num-1)*num; }} console.log(getNum(3)); 以上这个递归就是求得num的阶层 即num!,还有更多递归的方法,需要多多练习。
//快速排序,利用递归,比较中间值,进行快速排序var arr=[2,31,33,54,65,32];function f1(arr){ if(arr.length<1){ return arr; } var midIndex=Math.floor(arr.length/2); //获取中间的索引值 var midNum=arr.splice(midIndex,1)[0]; // 获取中间的数值,取出新的数组后,第0个元素即为数字 var right=[]; var left=[]; for(var i=0;i<arr.length;i++){ if(arr[i]<midNum){ left.push(arr[i]); }else{ right.push(arr[i]); } } return f1(left).concat([midNum],f1(right));} console.log(f1(arr));
时间: 2024-10-06 14:55:15