zoukankan      html  css  js  c++  java
  • js常见排序

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script>
    //冒泡排序
    //两两比较交换位置。
    function sortBubble(arr){
    for(i=0;i<arr.length-1;i++){
    for(j=0;j<arr.length-1-i;j++){
    if(arr[j]>arr[j+1]){
    var temp=arr[j];
    arr[j]=arr[j+1];
    arr[j+1]=temp;
    }
    }
    }
    return arr;
    }
    //快速排序
    // (1)在数据集之中,选择一个元素作为"基准"(pivot)。
    // (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。
    // (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
    function quickSort(arr) {
    var len = arr.length, a0 = arr[0], left = [], right = [];
    if (arr.length <= 1) { return arr;}
    for (var i = 1; i < len; i++) {
    if (arr[i] < a0) {
    left.push(arr[i])
    } else {
    right.push(arr[i])
    }
    }
    return arguments.callee(left).concat([a0], arguments.callee(right));
    }
    //插入排序
    // 1.首先将数组第1个数看成是一个有序序列。
    // 2.将数组的第2个数按照关键字大小插入到这个有序序列中,插入后得到了一包含两个数的有序序列。
    // 3.接下来再重复上面的步骤将第3,第4……第n-1个数分别插入到该有序序列中,最终得到一个包含n个数的有序序列。
    function insertSort(arr){
    var len =arr.length,temp, i,j;
    for(i=1;i<len;i++ ){
    temp = arr[i];
    j = i-1;
    while(j>=0 && arr[j]>temp){
    arr[j+1] = arr[j];
    j--;
    }
    arr[j+1] = temp;
    }
    return arr;
    }
    //选择排序
    //1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,
    //2.然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
    //3.以此类推,直到所有元素均排序完毕。
    function selectSort(arr){
    var len = arr.length, i, j,temp;
    for(i=0;i<len-1;i++){
    temp = arr[i];
    for(j = i+1;j<len-1;j++){
    if(temp>arr[j]){
    var min = temp;
    temp = arr[j];
    arr[j] = min;
    }
    }
    arr[i] = temp
    }
    return arr;
    }
    var arr = [1,2,4,5,3,2,3];
    console.log(sortBubble(arr));
    console.log(quickSort(arr));
    console.log(insertSort(arr));
    console.log(selectSort(arr))
    </script>
    </body>
    </html>
  • 相关阅读:
    mysql常用基本命令
    mysql8.0.13下载与安装图文教程
    k8s ingress 增加跨域配置
    Jenkins 备份恢复插件 thinBackup 使用
    k8s HA master 节点宕机修复
    nginx 跨域问题解决
    mongodb 3.4.24 主从复制
    k8s 线上安装 jenkins并结合 jenkinsfile 实现 helm 自动化部署
    k8s helm 运用与自建helm仓库chartmuseum
    centos6 源码安装 unzip
  • 原文地址:https://www.cnblogs.com/tutao1995/p/8547753.html
Copyright © 2011-2022 走看看