zoukankan      html  css  js  c++  java
  • 学习数组排序中的冒泡排序,快速排序,插入排序

    搜集的别人的排序方法

    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> 
    
  • 相关阅读:
    你是一直认为 count(1) 比 count(*) 效率高么?
    php 判断是不是https链接
    php 版本比较
    php 执行效率
    redis 队列缓存 + mysql 批量入库 + php 离线整合
    php 高并发下数据同步的问题
    一个合格的工程师的知识结构
    php 代码编写的格式
    php 四种基础算法 ---- 快速排序法
    php 四种基础算法 ---- 插入排序法
  • 原文地址:https://www.cnblogs.com/c-and-unity/p/4533427.html
Copyright © 2011-2022 走看看