排序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>sort</title>
</head>
<body>
<script type="text/javascript">
//冒泡排序
    // function sort(arr){
    //     for(let i=0;i<arr.length-1;i++){
    //         for(let j=0;j<arr.length-i-1;j++){
    //             if(arr[j]>arr[j+1]){
    //                 let temp=arr[j];
    //                 arr[j]=arr[j+1];
    //                 arr[j+1]=temp;
    //             }
    //         }
    //     }
    //     return arr;
    // }
    // let arr=[3,4,22,56,12,1];
    // let arr1=sort(arr);
    // console.log(arr1);
    
//选择排序
       // function select(arr){
       //       for(let i=0;i<arr.length-1;i++){
       //           let min=arr[i];
       //           for(let j=i+1;j<arr.length;j++){
       //               if(arr[j]<min){
                         
       //                   let temp=arr[j];
       //                   arr[j]=min;
       //                   min=temp;
       //                   arr[i]=min;

                         
       //               }
       //           }
       //       }
       //       return arr;
       // }
       // let arr=[3,1,22,56,12,4,100,7];
       // let arr1=select(arr);
       // console.log(arr1);

//插入排序
    //   function insert(arr){
          
    //       for(let i=1;i<arr.length;i++){
    //           var key=arr[i];
    //           var j=i=1;
    //           while(j>0 && arr[j]>key){
    //               arr[j+1]=arr[j];
    //               j=j-1;
    //           }
    //           arr[j+1]=key;
          
    //       }
    //       return arr;
    //   }
    //   let arr=[3,1,22,56,12,4,100,7];
    //   let arr1=insert(arr);
    //   console.log(arr1);

      function mergesort(arr){
                 if(arr.length<2) return arr;
                 let mid=Math.floor(arr.length/2);
                 var left=arr.slice(0,mid);
                 var right=arr.slice(0);
                 return merge(mergesort(left),mergesort(right));

                function merge(left,right){
                     var result=[];
                     while(left.length && right.length){
                         if(left[0]<=right[0]){
                             result.push(left.shift(0));
                         }
                         else
                             result.push(right.shift(0));
                     }
                     while(left.length){result.push(left.shift(0));}
                     while(right.length){result.push(right.shift(0));}
                 }
            }

                let arr=[3,1,22,56,12,4,100,7];
                let arr1=mergesort(arr);
                console.log(arr1);
</script>
    


</body>
</html>

 

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>sort</title>
</head>
<body>
<script type="text/javascript">
//冒泡排序
    // function sort(arr){
    //     for(let i=0;i<arr.length-1;i++){
    //         for(let j=0;j<arr.length-i-1;j++){
    //             if(arr[j]>arr[j+1]){
    //                 let temp=arr[j];
    //                 arr[j]=arr[j+1];
    //                 arr[j+1]=temp;
    //             }
    //         }
    //     }
    //     return arr;
    // }
    // let arr=[3,4,22,56,12,1];
    // let arr1=sort(arr);
    // console.log(arr1);
    
//选择排序
       // function select(arr){
       //       for(let i=0;i<arr.length-1;i++){
       //           let min=arr[i];
       //           for(let j=i+1;j<arr.length;j++){
       //               if(arr[j]<min){
                         
       //                   let temp=arr[j];
       //                   arr[j]=min;
       //                   min=temp;
       //                   arr[i]=min;

                         
       //               }
       //           }
       //       }
       //       return arr;
       // }
       // let arr=[3,1,22,56,12,4,100,7];
       // let arr1=select(arr);
       // console.log(arr1);

//插入排序
      // function insert(arr){
      //     var key;
      //     for(let i=1;i<arr.length;i++){
      //         key=arr[i];
              
      //         while(i-1>=0 && arr[i-1]>key){
      //             arr[i]=arr[i-1];
      //             i--;
      //         }
      //         arr[i]=key;
          
      //     }
      //     return arr;
      // }
      // let arr=[3,1,22,56,12,4,100,7];
      // let arr1=insert(arr);
      // console.log(arr1);


//快速排序
        //  function quicksort(arr){
        //      if(arr.length<2) return arr;
        //      let mid=Math.floor(arr.length/2);
        //      let middle=arr.splice(mid,1);
        //      var left=[];
        //      var right=[];
        //      for(let i=0;i<arr.length;i++){
        //          if(arr[i]<=middle){
        //              left.push(arr[i]);
        //          }
        //          else
        //              right.push(arr[i]);
        //      }
        //      return quicksort(left).concat(middle,quicksort(right));
        //  }

        // let arr=[3,1,22,56,12,4,100,7];
        // let arr1=quicksort(arr);
        // console.log(arr1);


 //归并排序
            function mergesort(arr){
                 if(arr.length<2) return arr;
                 let mid=Math.floor(arr.length/2);
                 var left=arr.slice(0,mid);
                 var right=arr.slice(mid);
                 return merge(mergesort(left),mergesort(right));
             }

            function merge(left,right){
                     var result=[];
                     while(left.length>0 && right.length>0){
                         if(left[0]<=right[0]){
                             result.push(left.shift());
                         }
                         else
                             result.push(right.shift());
                     }
                     while(left.length){result.push(left.shift());}
                     while(right.length){result.push(right.shift());}
             
                 return result.concat(left).concat(right);
            }

                let arr=[3,1,22,56,12,4,100,7];
                let arr1=mergesort(arr);
                console.log(arr1);

</script>
    


</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值