美文网首页
冒泡$快排序

冒泡$快排序

作者: 012ca771a446 | 来源:发表于2017-03-01 17:04 被阅读0次
    冒泡排序

    每次比较相邻的两个数,如果后一个比前一个小,换位置。

    <script>
        var arr = [1, 8, 5,7, 4, 2, 6];
    
        function bubbleSort(arr) {
            for (var i = 0; i < arr.length - 1; i++) {
                for(var j = 0; j < arr.length - 1; j++) {
                    if(arr[j + 1] < arr[j]) {
                        var temp;
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        }
    
        console.log(bubbleSort(arr));
    </script>
    
    快速排序

    采用二分法,取出中间数,数组每次和中间数比较,小的放到左边,大的放到右边。

    <script>
        var arr =  [1, 8, 5,7, 4, 2, 6];
    
        function quickSort(arr) {
            if(arr.length == 0) {
                return [];    // 返回空数组
            }
    
            var cIndex = Math.floor(arr.length / 2);
            var c = arr.splice(cIndex, 1);
            var l = [];
            var r = [];
    
            for (var i = 0; i < arr.length; i++) {
                if(arr[i] < c) {
                    l.push(arr[i]);
                } else {
                    r.push(arr[i]);
                }
            }
    
            return quickSort(l).concat(c, quickSort(r));
        }
    
        console.log(quickSort(arr));
    </script>
    

    相关文章

      网友评论

          本文标题:冒泡$快排序

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