zoukankan      html  css  js  c++  java
  • 用js实现插入排序

    话不多说,直接上代码

    html源码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <script src="../../../../CommonJS/jquery-1.9.1.js"></script>
     <script src="../Js/InsertSort.js"></script>
     <link rel="stylesheet" type="text/css" href="../../../../CommCss/base.css">
    <title>插入排序</title>
    </head>
    <body  style="background-color: rgb(236, 236, 199);">
    <div class="TopDiv" style="left:380px">
    <span style="margin-left:20px">排序规则:输入框中输入以逗号隔开的的数字,排序结果按照从小到大升序排列</span>
    <input type="text" style="400px;position:absolute;top:60px;left:20px" id="content"/>
    <input type="button" id="click" value="单击进行排序 "   style="120px;position:absolute;top:60px;left:445px"/>
    <label style="100px;position:absolute;top:120px;left:20px">结果显示区:</label>
    <textarea id="conclude" style="500px;height:100px;position:absolute;top:160px;left:120px"></textarea>
    </div>
    </body>
    </html>
    

      

    js源代码

    // JavaScript Document
    
    var myarr=[];
    $(function(){       
               //单击排序按钮触发的事件
               $("#click").click(function(){
                   insert_mine();
                   })
              document.onkeydown=function(event){
                  var  e=event||window.event||arguments.callee.caller.arguments[0]; 
                  if(e&&e.keyCode==13&&$("#content").is(":focus"))
                          {
                              insert_mine();
                          }                           
                  }
               })
    
    
    
    var insert_mine=function(){
        var content=$("#content");
        if(!content.val()){alert("请输入要排序的内容!");return false;};
        
        var arr=content.val().split(",");
        
        for(var  i=0;i<arr.length;i++)
        {
            if(isNaN(arr[i])){alert("输入的有非法 数字,程序已经退出!");return false;}    
            myarr=arr_solve(myarr,arr[i]);
        }
        
        alert("排序结束。");    
        $("#conclude").val(myarr.toString());
        myarr=[];
    }
    
    
    var arr_solve=function(arr1,i){
        debugger;
        if(arr1.length==0)
        {
            arr1[0]=i;
            }
            else
            {
                for(var k=0;k<arr1.length;k++)
                {
                if(parseInt(arr1[k])>=parseInt(i)&&k<arr1.length)
                    {
                //前面的 索引都不用 动 ,要动的是后面的索引
                //arr[k]=i;
                
                for(var j=arr1.length;j>k;j--)
                {
                    arr1[j]=arr1.slice(0)[j-1];    
                }
                        arr1[k]=i;    
                        console.log(arr1.toString());
                        return arr1;
                        }
                        else
                        {
                            if(arr1.length==k+1)
                            {
                            arr1[arr1.length]=i;
                            console.log(arr1.toString());
                            return arr1;
                            }
                                                    
                            }
                    
                    }
                
                }
                console.log(arr1.toString());
        return arr1;
        }
        
        

    输入规则:输入框中输入以逗号隔开的的数字

    输出规则:排序结果按照从小到大升序排列

    运行结果截图:

    这里需要注意的是,数组中元素的交换不能直接用赋值的方式,要用数组自带的slice方法。

    备注:运行此程序需要导入jquery库

  • 相关阅读:
    jmeter接口测试----10从文件中读取
    How to let a html with JavaScript can display in Outlook?
    [Jenkins] 将上游Job的参数传递给多个下游Job
    Jenkins Job之间传递参数
    一个Jenkins job里面配置多个批处理脚本,如果其中某一个有fail的,其后面的批处理脚本全都不执行了
    JMeter supports dashboard report generation to get graphs and statistics from a test plan
    分享几个实用的批处理脚本
    Job构建步骤间的自定义变量传递
    Download file from a URL using AutoIt, and run in Robot Framework. (Also can use in other application)
    [Selenium] Upload File on Remote Node Machines
  • 原文地址:https://www.cnblogs.com/wjcnet/p/3733435.html
Copyright © 2011-2022 走看看