• 排序方法总结(一)


      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>
  • 相关阅读:
    App分享微信小程序
    PHP-FFMpeg 操作视频/音频文件 (转)
    用户画像
    phpcms中的RBAC权限系统
    PHPExcel生成excel
    OPNET中节点模型中包流的索引号的含义
    删除opnet之前保存或打开的目录后每次打开总会提示warning
    opnet 的学习方法有感
    win10:两款轻量级美化软件使用技巧(StartlsBack++与RocketDock)
    任务栏透明
  • 原文地址:https://www.cnblogs.com/Fadinglemon/p/4235140.html
Copyright © 2020-2023  润新知