javascript 快速排序算法

今天给大家介绍的是javascript中的快速排序算法。

快速排序:

1、通过数组长度,来找到数组中间的那个值(基准值)

2、分别拿数组中其他值和该值进行比较,如果小(大)于该基准值就直接添加到left数组中,如果大(小)于该基准值添加到right数组中,形成两个数组

3、利用递归分别对left和right进行相同的排序操作

4、最终判断arr的长度是否小于等于1,如果是:说明数组已经剩一个值了无需进行排序了,直接返回该数组

5、最终返回 left数组+基准值+right数组,就是你想要的排序结果

代码示例:

function quickSort( arr ){  
    if( arr.length <= 1 ){  
        return arr;  
    }  
    var num = Math.floor( arr.length / 2 );  
    var numValue = arr.splice( num, 1 );  
    var left = [];  
    var right = [];  
    for( var i = 0; i < arr.length; i ++ ){  
        if( arr[i] < numValue ){  
            left.push( arr[i] );  
        }else{  
            right.push( arr[i] );  
        }  
    }  
    return quickSort( left ).concat( [numValue], quickSort(right) );  
}  
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容