zoukankan      html  css  js  c++  java
  • JS中冒泡排序,选择排序,快速排序

        var arr = [1,4,2,9,7,6,5,4,7,5];
        // 冒泡排序(通俗的说就是j 和 j+1打,谁赢了谁去后面)
     
        for(var i = 1;i<arr.length;i++){
            for(var j = 0;j<arr.length - i;j++){
                if(arr[j]>arr[j+1]){
                    var temp =  arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        console.log(arr);


        // 选择排序(通俗的说就是j 和i打,谁赢了谁去前面)
     
        for(var i = 0;i<arr.length-1;i++){
            for(var j = i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    var temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        console.log(arr);



        //速排序:
            取数组中间下标的值,再将其他值与该值相比,大于加入右数组,小于加入左数组,递归调用
     
        function quick(arr){
            // 递归出口条件
            if(arr.length<=1){return arr;}
            // 获取中间下标
            var centerindex = arr.length%2==0?arr.length/2:(arr.length+1)/2;
            // 获取中间下标对应的值
            var centerElement = arr[centerindex];
            // 创建左右数组
            var left = [];
            var right = [];
            // 循环判断,若元素大于中间下表对应的值则加入左数组,反之加入右数组
            for(var i = 0;i<arr.length;i++){
                if((i!=centerindex)&&(arr[i]>=centerElement)){
                    right.push(arr[i]);
                }
                if((i!=centerindex)&&(arr[i]<centerElement)){
                    left.push(arr[i]);
                }
            }
            //递归调用该函数
            return quick(left).concat(centerElement).concat(quick(right));
        }
       console.log(quick(arr));
  • 相关阅读:
    微信开放平台:OpenAPI、云开发与基础管理能力升级
    腾讯刘颖:从容器到低代码,腾讯云原生技术演进历程
    十年老站长心声:我为什么选择把 Hexo 网站迁移到 Webify
    腾讯云发布微搭生态开放计划,与合作伙伴携手共创产业未来
    SQL Server附加数据库出现错误5123的正确解决方法
    数据分页获取(二)
    Select语句
    数据分页获取(一)
    SQL Server中行转列原理
    QT实现Linux下系统监控小工具之二
  • 原文地址:https://www.cnblogs.com/suihang/p/9495302.html
Copyright © 2011-2022 走看看