当前位置:编程学习 > JS >>

js常用的数组元素排序算法(冒泡 插入 希尔)(1/2)

下面来看看网页特效中常用的一些排序方法 ,我们主要是包括有冒泡 插入 希尔排序方法 ,主要是针对数组操作。

    // ---------- 一些排序算法
   

// js 利用sort进行排序
     systemsort:function(array){
        return array.sort(function(a, b){
            return a - b;
        });
    },

    // 冒泡排序
  

  bubblesort:function(array){
        var i = 0, len = array.length,
            j, d;
        for(; i<len; i++){
            for(j=0; j<len; j++){
                if(array[i] < array[j]){
                    d = array[j];
                    array[j] = array[i];
                    array[i] = d;
                }
            }
        }
        return array;
    },
   

// 快速排序
   

quicksort:function(array){
        //var array = [8,4,6,2,7,9,3,5,74,5];
        //var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7];
        var i = 0;
        var j = array.length - 1;
        var sort = function(i, j){
           
            // 结束条件
            if(i == j ){ return };
           
            var key = array[i];
            var tempi = i; // 记录开始位置
            var tempj = j; // 记录结束位置
           
            while(j > i){
                // j <<-------------- 向前查找
                if(array[j] >= key){
                    j--;
                }else{
                    array[i] = array[j]
                    //i++ ------------>>向后查找
                    while(j > ++i){
                        if(array[i] > key){
                            array[j] = array[i];
                            break;
                        }
                    }
                }
            }
           
            // 如果第一个取出的 key 是最小的数
            if(tempi == i){
                sort(++i, tempj);
                return ;
            }
           
            // 最后一个空位留给 key
            array[i] = key;
           
            // 递归
            sort(tempi, i);
            sort(j, tempj);
        }
       
        sort(i, j);
       
        return array;
    },
   
   

1 2
补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,