zoukankan      html  css  js  c++  java
  • 排序方法总结(一)

      1 <!DOCTYPE html>
      2 <html>
      3 <head lang="en">
      4     <meta charset="UTF-8">
      5     <title></title>
      6 </head>
      7 <body>
      8 <input type="text" id="input" style="500px"/>
      9 
     10 <input type="button" id="submit" value="确认" onclick="deal()"/>
     11 <script>
     12     var arr = [5,6,4,7,3,8,2,9,1,0];
     13     var l = 10;
     14     document.getElementById("input").value = arr;
     15     var q = document.getElementById("submit");
     16     function deal() {
     17         //bubbleSort();
     18         //selectSort();
     19         //insertSort();
     20         //_inserSort(1);
     21         //shellSort();
     22         //arr = qSort(arr);
     23         //quickSort(0,l);
     24         document.getElementById("input").value = arr;
     25     }
     26     function bubbleSort()
     27     {
     28         var flag = true;
     29         var len = l -1;
     30         var tem;
     31         while(flag)
     32         {
     33             flag = false;
     34             for(var i = 0;i<len;i++)
     35             {
     36                 if(arr[i]>arr[i+1])
     37                 {
     38                     tem = arr[i];
     39                     arr[i] = arr[i+1];
     40                     arr[i+1] = tem;
     41                     flag = true;
     42                 }
     43             }
     44         }
     45     }
     46     function selectSort()
     47     {
     48         var min ;
     49         var len = l-1;
     50         var tem;
     51         for(var i = 0;i<l-1;i++)
     52         {
     53             min = i;
     54             for(var j = i+1;j<l;j++)
     55             {
     56                 if(arr[j]<arr[min])
     57                 {
     58                     min = j;
     59                 }
     60             }
     61             tem = arr[i];
     62             arr[i] = arr[min];
     63             arr[min] = tem;
     64         }
     65     }
     66     function insertSort()
     67     {
     68         var j;
     69         var tem;
     70         for(var i = 1;i<l;i++)
     71         {
     72             tem = arr[i];
     73             for(j = i;j>0&&tem<arr[j-1];j--)
     74             {
     75                 arr[j] = arr[j-1];
     76             }
     77             arr[j] = tem;
     78         }
     79     }
     80     function _inserSort(gap)
     81     {
     82         //alert("_inserSort");
     83         var j;
     84         var tem;
     85         for(var i = gap;i<l;i++)
     86         {
     87             tem = arr[i];
     88             for(j = i;j>0&&tem<arr[j-gap];j-= gap)
     89             {
     90                 arr[j] = arr[j-gap];
     91             }
     92             arr[j] = tem;
     93         }
     94     }
     95     function shellSort()
     96     {
     97         alert("shellSort");
     98         var gap = parseInt(l/2);
     99         while(gap>=1)
    100         {
    101             _inserSort(gap);
    102             gap = parseInt(gap/2);
    103         }
    104     }
    105     function qSort(a)
    106     {
    107         //alert("qSort");
    108         var l  = a.length;
    109         if(l == 0)
    110         {
    111             return [];
    112         }
    113         var lesser = [];
    114         var greater = [];
    115         var p = a[0];
    116         for(var i = 1;i<l;i++)
    117         {
    118             if(a[i]<p)
    119             {
    120                 lesser.push(a[i]);
    121             }
    122             else
    123             {
    124                 greater.push(a[i]);
    125             }
    126         }
    127         return qSort(lesser).concat(p,qSort(greater));
    128     }
    129     function quickSort(s,e)
    130     {
    131         console.log(arr);
    132         var i = s ;
    133         var j = e ;
    134         if(s<e-1)
    135         {
    136             while(1)
    137             {
    138                 do
    139                 {
    140                     i++;
    141                 }
    142                 while(arr[i]<arr[s]&&i<e-1);
    143                 do
    144                 {
    145                     j--;
    146                 }
    147                 while(arr[j]>arr[s]&&j>s+1)
    148                 if(i<j)
    149                 {
    150                     var tem = arr[j];
    151                     arr[j]= arr[i];
    152                     arr[i] =tem;
    153                 }
    154                 else
    155                 {
    156                     break;
    157                 }
    158             }
    159             var tem = arr[s];
    160             arr[s] = arr[j];
    161             arr[j] = tem;
    162 
    163             quickSort(s,j);
    164             quickSort(j+1,e);
    165         }
    166     }
    167 </script>
    168 </body>
    169 </html>
  • 相关阅读:
    leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard
    leetcode 129. Sum Root to Leaf Numbers
    leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
    leetcode 402. Remove K Digits 、321. Create Maximum Number
    leetcode 139. Word Break 、140. Word Break II
    leetcode 329. Longest Increasing Path in a Matrix
    leetcode 334. Increasing Triplet Subsequence
    leetcode 403. Frog Jump
    android中webView加载H5,JS不能调用问题的解决
    通过nginx中转获取不到IP的问题解决
  • 原文地址:https://www.cnblogs.com/Fadinglemon/p/4235140.html
Copyright © 2011-2022 走看看