• 学习数组排序中的冒泡排序,快速排序,插入排序


    搜集的别人的排序方法

    http://www.cnblogs.com/CareySon/archive/2011/10/28/2227703.html

    搜集的别人看似简洁的写法

         //冒泡排序  
        function sortBubble(array){  
          var len=array.length,i,j,tmp;  
          for(i=len-1;i>=1;i--){  
            for(j=0;j<=i-1;j++){  
              if(array[j]>array[j+1]){  
                 d=array[j+1];  
                 array[j+1]=array[j];  
                 array[j]=d;  
              }  
            }  
          }  
          return array;  
        }  
        //快速排序  
        function sortQuick(array){  
          var low=0,high=array.length-1;  
          var sort=function(low,high){  
            if(low==high){  
               return;  
            }  
            var key=array[low];  
            var tmplow=low;  
            var tmphigh=high;  
            while(low<high){  
              while(low<high&&key<=array[high]){  
                --high;  
              }  
              array[low]=array[high];  
              while(low<high&&array[low]<=key)  
              {  
                 ++low;  
              }  
              array[high]=array[low];  
              if(low==tmplow){  
                sort(++low,tmphigh);  
                return;  
              }  
            };  
            array[low]=key;  
            sort(tmplow,low-1);  
            sort(high+1,tmphigh);  
          };  
          sort(low,high);  
          sort();  
          return array;  
        }  
        //插入排序  
        function sortInsert(array){  
          var i=1,j,len=array.length,key;  
          for(;i<len;i++){  
            j=i;  
            key=array[j];  
            while(--j>-1){  
              if(array[j]>key){  
                array[j+1]=array[j];  
              }  
              else  
              {  
                 break;  
              }  
            }  
            array[j+1]=key;  
          }  
          return array;  
        } 
    

     相对完整的冒泡排序的写法

    function sort(elements){
     for(var i=0;i<elements.length-1;i++){
      for(var j=0;j<elements.length-i-1;j++){
       if(elements[j]>elements[j+1]){
        var swap=elements[j];
        elements[j]=elements[j+1];
        elements[j+1]=swap;
       }
      }
     }
    }
     
    var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
    console.log('before: ' + elements);
    sort(elements);
    console.log(' after: ' + elements);
    

     另一种写法

    <script language="JavaScript" type="text/javascript"> 
    <!--  
    function bubbleSort(arr){  
        //外层循环,共要进行arr.length次求最大值操作  
        for(var i=0;i<arr.length;i++){  
            //内层循环,找到第i大的元素,并将其和第i个元素交换  
            for(var j=i;j<arr.length;j++){  
                if(arr[i]<arr[j]){  
                    //交换两个元素的位置  
                    var temp=arr[i];  
                    arr[i]=arr[j];  
                    arr[j]=temp;  
                }  
            }  
        }  
    }  
     
    var arr=[32,55,78,43,78,10,45,20,9,89];  
    bubbleSort(arr);  
     
    //输出:89,78,78,55,45,43,32,20,10,9  
    for(var i=0;i<arr.length;i++){  
        document.write(arr[i]+",");  
    }  
    //--> 
    </script> 
    
  • 相关阅读:
    迭代加深搜索 codevs 2541 幂运算
    二叉树结构 codevs 1029 遍历问题
    深搜+DP剪枝 codevs 1047 邮票面值设计
    2016.6.10 深度优先搜索练习
    二分+动态规划 POJ 1973 Software Company
    tarjan算法求桥双连通分量 POJ 3177 Redundant Paths
    tarjan算法+缩点:求强连通分量 POJ 2186
    tarjan算法求割点cojs 8
    关键路径 SDUTOJ 2498
    第二章 STM32的结构和组成
  • 原文地址:https://www.cnblogs.com/c-and-unity/p/4533427.html
Copyright © 2020-2023  润新知