zoukankan      html  css  js  c++  java
  • 某个数组,通过交换使所有奇数都在前半所有偶数都在后半,复杂度O(N)。

    function swaping3(A, i, j){
        if((i === j) || (i === j + 1)){
    //  if(i >= j){
    return; }
    //debugger; if(A[i]%2 === 1){ if(A[j]%2 === 1){ swaping3(A, ++i, j); }else{ swaping3(A, ++i, --j); } }else{ if(A[j]%2 === 1){ var temp; temp = A[i]; A[i] = A[j]; A[j] = temp; swaping3(A, ++i, --j); }else{ swaping3(A, i, --j); } } // return A; } function ARR(num, max){ if(arguments.length < 2){ alert("Not enough parameter ~"); return; } var AA = []; for(var i = 0; i<num; i++){ AA.push( Math.ceil(Math.random() * max) ); } return AA; // var i = 0, j = num - 1; // swaping(this.AA, i, j); // return("Swap finished ~") } var OO = new Object(); OO.A = ARR(30, 100); swaping3.call(OO, OO.A, 0, OO.A.length - 1);

    上面是代码,十分简单,下面是执行结果:

    OO.A = ARR(30, 100);
    [85, 70, 44, 100, 37, 81, 97, 89, 67, 7, 73, 5, 83, 41, 33, 96, 80, 93, 73, 59, 89, 42, 27, 15, 49, 26, 81, 10, 62, 95]
    swaping3.call(OO, OO.A, 0, 29);
    undefined
    OO.A
    [85, 95, 81, 49, 37, 81, 97, 89, 67, 7, 73, 5, 83, 41, 33, 15, 27, 93, 73, 59, 89, 42, 80, 96, 100, 26, 44, 10, 62, 70]
    OO.A = ARR(50, 10000);
    [2124, 5000, 5082, 5998, 7476, 962, 5368, 9555, 3593, 5932, 2321, 8518, 2118, 186, 1496, 5914, 1605, 4569, 162, 7487, 4689, 2445, 3122, 8395, 8659, 2368, 1123, 2680, 673, 5098, 3679, 858, 9779, 50, 6818, 823, 8880, 8461, 1496, 942, 2316, 6356, 4691, 2397, 3756, 9451, 3103, 9179, 3108, 9892]
    swaping3.call(OO, OO.A, 0, 49);
    undefined
    OO.A
    [9179, 3103, 9451, 2397, 4691, 8461, 823, 9555, 3593, 9779, 2321, 3679, 673, 1123, 8659, 8395, 1605, 4569, 2445, 7487, 4689, 162, 3122, 5914, 1496, 2368, 186, 2680, 2118, 5098, 8518, 858, 5932, 50, 6818, 5368, 8880, 962, 1496, 942, 2316, 6356, 7476, 5998, 3756, 5082, 5000, 2124, 3108, 9892]

    功能正常~复杂度也满足O(N)~

  • 相关阅读:
    TreeView中找鼠标指向的节点
    自己写的一个分页控件源代码
    [JWF]只显示当前用户的WorkItem方法
    [JWF]安装Workflow Server后的中文界面补丁
    [JWF]JWF中调用WebService方法
    [JWF]配置Adobe Form Server Application
    [导入](HOWTO)将一个Xml中的节点复制到别一个Xml的节点上
    [JWF]Form Common button 执行生命周期
    [JWF]Special Buttons 执行生命周期
    [JWF]Participant Interface访问ActiveDirectory
  • 原文地址:https://www.cnblogs.com/andypeker/p/4466093.html
Copyright © 2011-2022 走看看