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

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

原理我都懂,可是sort()方法用爽了,怎么会去研究原生js的实现呢!好吧,既然面试官要问,我就写!!

一.冒泡排序
function aryList(arry){
    this. bubbleSort=function(){
        var len=arry.length;
        for(var i=0;iarry[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

Chrome下的测试结果:

image.png

你可能感兴趣的:(原生javascript实现简单的数据结构与算法)