• 算法学习1-插入排序


    学习算法,简单做了个小练习,插入算法:

     1 <script type="text/javascript">
     2 var n=100;
     3 var array=new Array(n);
     4 //用A来进行排序
     5 var A=new Array();
     6 //生成100个随机数的数组
     7 for(var i=0;i<array.length;i++)
     8 {
     9     array[i]=Math.floor(Math.random()*n);    
    10     document.writeln(array[i]);
    11 }
    12 //插入算法函数
    13 function insertSort()
    14 {    
    15     A[0]=array[0];
    16     var j=1;
    17     var i=0;
    18     for (j;j<array.length ;j++ )
    19     {
    20         //从第二个数开始把已经有的数组中的数据赋值给A,然后排序
    21         A[j]=array[j];
    22         var key=array[j];
    23         i=j-1;
    24         //当前数据比已经排好序的数据最末尾要小时,则要插入。使用循环,直到把这个数插入到比它大的第一个数前面
    25         //相当于对当前数据和已经排好序的做一次冒泡排序,小的冒到前面去
    26         while(A[i+1]<A[i]&&i>=0)
    27         {
    28             //执行插入语句
    29             A[i+1]=A[i];
    30             A[i]=key;
    31             i=i-1;
    32         }        
    33     }    
    34 }
    35 document.writeln("<br/>-----------after sort---------<br/>");
    36 insertSort();
    37 for(var j=0;j<A.length;j++)
    38     {
    39         document.writeln(A[j]);
    40     }
    41 </script>

    结果:

    改进了下,发觉while中赋值可以在把所有大的数据移动往后后再插入

     1 <script type="text/javascript">
     2 var n=100;
     3 var array=new Array(n);
     4 //用A来进行排序
     5 var A=new Array();
     6 //生成100个随机数的数组
     7 for(var i=0;i<array.length;i++)
     8 {
     9     array[i]=Math.floor(Math.random()*n);    
    10     document.writeln(array[i]);
    11 }
    12 //插入算法函数
    13 function insertSort()
    14 {    
    15     A[0]=array[0];
    16     var j=1;
    17     var i=0;
    18     for (j;j<array.length ;j++ )
    19     {
    20         //从第二个数开始把已经有的数组中的数据赋值给A,然后排序
    21         A[j]=array[j];
    22         var key=array[j];
    23         i=j-1;
    24         //当前数据比已经排好序的数据最末尾要小时,则要插入。使用循环,直到把这个数插入到比它大的第一个数前面
    25         //相当于对当前数据和已经排好序的做一次冒泡排序,小的冒到前面去
    26         while(key<A[i]&&i>=0)
    27         {
    28             //执行插入语句
    29             A[i+1]=A[i];             
    30             i=i-1;
    31         }        
    32         A[i+1]=key;
    33        
    34     }    
    35 }
    36 document.writeln("<br/>-----------after sort---------<br/>");
    37 insertSort();
    38 for(var j=0;j<A.length;j++)
    39     {
    40         document.writeln(A[j]);
    41     }
    42 </script>
  • 相关阅读:
    19冒烟测试和回归测试
    sandboxie配置文件
    Security Descriptor
    sbiedll.dll log
    Process Memory
    资源同步
    卸载列出残留进程
    sandboxie注入
    LPC
    Changing Environment Variables
  • 原文地址:https://www.cnblogs.com/luckyflower/p/3778204.html
Copyright © 2020-2023  润新知