zoukankan      html  css  js  c++  java
  • 冒泡排序和快速排序

    冒泡排序:比较次数(n+1)*n/2,时间复杂度为O(n2)

    function bubblesort(arr){
        var temp;
        for(var i=0;i<arr.length-1;i++){
            for(var j = arr.length-1;j>i;j--){
                if(arr[j-1]>arr[j]){
                    temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j]=temp;
                }
            }
        }
    }
                
    var arr = [51,33,62,96,87,17,28,51];
                
    bubblesort(arr);



    快速排序时间复杂度为O(nlog2n)

    function partition(arr,left,right){
        var baseNum = arr[left];
        while(left<right){
            while(left<right&& arr[right]>=baseNum){
                right = right -1;
                            
            }
            arr[left] = arr[right];
            while(left<right && arr[left]<=baseNum){
                left = left + 1;
            }
            arr[right] = arr[left];
        }
        arr[left] = baseNum;
        return left;
    }
                
    function quicksort(arr,left,right){
        if(left<right){
            var i = partition(arr, left, right);
            quicksort(arr, left, i - 1);
            quicksort(arr, i + 1, right);
        }
    }
                
    var arr = [51,33,62,96,87,17,28,51];
                
    quicksort(arr);
  • 相关阅读:
    大小端判断
    引用计数
    STL_ALGORITHM_H
    书单一览
    GIT版本控制系统(二)
    JS随机数生成算法
    STL学习笔记--临时对象的产生与运用
    乱序优化与GCC的bug
    你的灯亮着吗?
    交换机和路由器
  • 原文地址:https://www.cnblogs.com/kuikui/p/2843462.html
Copyright © 2011-2022 走看看