美文网首页
原生javascript实现简单的数据结构与算法

原生javascript实现简单的数据结构与算法

作者: 温梦丽 | 来源:发表于2017-11-13 15:16 被阅读0次

最近面试被问到冒泡排序和快速排序,要求现场手撕代码。

一.冒泡排序
function aryList(arry){
    this. bubbleSort=function(){
        var len=arry.length;
        for(var i=0;i<len;i++){
            for(var j=0;j<len-1;j++){
                if(arry[j]>arry[j+1]){
                    swap(j,j+1);
                }   
            }
        }
        return arry;
    }
    var swap=function(i,j){
        var temp=arry[i];
        arry[i]=arry[j];
        arry[j]=temp;
    }
}
var array=new aryList([19,16,14,12,5,6,9,8,7,4,3]);
 var result=array.bubbleSort();
 
 console.log(result);

Chrome下的测试结果:

image.png
二.快速排序

找出数组的中间值,然后定义两个数组分别存放比中间值小和比中间值大的数,最后把它们拼接起来。

function quikSort(arr){
     if(arr.length<=1){
         return arr;
     }
     var midIndex=Math.floor(arr.length/2);
     var middle=arr.splice(midIndex,1)[0];
     var left=[],right=[];
     for(var i=0;i<arr.length;i++){
         if(arr[i]<middle){
             left.push(arr[i]);
         }
         else{
             right.push(arr[i]);
         }
     }
    return quikSort(left).concat(middle,quikSort(right));
    
}
var result=quikSort([9,7,6,5,4,3,12,14,16]);
console.log(result);

Chrome下的测试结果:

image.png

相关文章

网友评论

      本文标题:原生javascript实现简单的数据结构与算法

      本文链接:https://www.haomeiwen.com/subject/sgpomxtx.html