zoukankan      html  css  js  c++  java
  • javascript(6)

    javascript的冒泡排序

    var arr=[5,0,-56,900,12];
    //大的排序次数(arr.length-1)
    var flag=false;
    for(var i=0;i<=arr.length-1;i++){
    for(var j=1;j<=arr.length-1-i;j++){
    if(arr[j-1]>arr[j]){
    var temp=arr[j];
    arr[j]=arr[j-1];
    arr[j-1]=temp;
    flag=true;
    }
    }
    if(flag){
    flag=false;
    }else{
    flag=true;
    }
    }
    document.writeln(arr);

    查找

    我们常用的查找有两种:

    ①顺序查找

    ②二分查找

    二分查找有个前提:该数组是有序的,如果不是有序的数组,则不能使用二分查找。

    代码:

    //思路:找到数组的中间数,和你要查找的数(findVal)进行比较,如果
        //midVal>findVal 则说明findVal在数组的左边,就把该数组二分了(就只在左边查找。)
        function binarySearch(arr,findVal,leftIndex,rightIndex){
            //找到这个值
            if(leftIndex>rightIndex){
                //提示找不到
                document.writeln("找不到");
                return;
            }
    
            var midIndex=arr[Math.floor((leftIndex+rightIndex)/2)];
            var midVal=arr[midIndex];
            //比较
            if(midVal>findVal){
                //在左边找
                binarySearch(arr,findVal,leftIndex,midIndex-1);
            }else if(midVal<findVal){
                binarySearch(arr,findVal,midIndex+1,rightIndex);
            }else{
                document.writeln("找到 下标为"+midIndex);
                return;
            }
        }

    注意:在js中(1+2)/2=1.5,它不会自动截断。需要使用

    Math.floor((1+2)/2)

  • 相关阅读:
    【python笔记】类
    【Marva Collins' Way】第八章
    【Marva Collins' Way】第七章
    【python笔记】包
    【python笔记】模块
    【Marva Collins' Way】第六章
    【Marva Collins' Way】第九章
    【python笔记】异常
    Axios跨域&封装接口
    js更新数据
  • 原文地址:https://www.cnblogs.com/liaoxiaolao/p/9756930.html
Copyright © 2011-2022 走看看