排序

    xiaoxiao2024-12-28  56

    <!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>

    最新回复(0)