javascript 快排

    function quickSort(arr){
                    //如果数组只有一个数,就直接返回;
                    if(arr.length<1){
                        return arr;    
                    }
                    
                    //找到中间的那个数的索引值;如果是浮点数,就向下取整
                    var centerIndex = Math.floor(arr.length/2);
                    
                    //根据这个中间的数的索引值,找到这个数的值;
                    var centerNum = arr.splice(centerIndex,1);
                    
                    //存放左边的数
                    var arrLeft = [];
                    //存放右边的数
                    var arrRight = [];
                    
                    for(i=0;i<arr.length;i++){
                        if(arr[i]<centerNum){
                            arrLeft.push(arr[i])
                        }else if(arr[i]>centerNum){
                            arrRight.push(arr[i])
                        }
                    }
                    return quickSort(arrLeft).concat(centerNum,quickSort(arrRight));
                    
                };
                var arrSort = [4,3,1,5,8,2];
                var arr1 = quickSort(arrSort);
                console.log(arr1);

 

posted @ 2023-07-16 23:02  font-dev  阅读(6)  评论(0编辑  收藏  举报