zoukankan      html  css  js  c++  java
  • 用JS实现的常见几种排序算法

    1.快速排序法

    1. /*快速排序法*/
    2.         function quickSort(a) {
    3.                 if (a.length <= 1) {
    4.                         return a;
    5.                 }
    6.                 var midLength = Math.floor(a.length / 2);
    7.                 var midValue = a.splice(midLength,1);
    8.                 var left = [];
    9.                 var right = [];
    10.                 for (var i = 0; i < a.length; i++) {
    11.                         if (a[i] < midValue) {
    12.                                 left.push(a[i]);
    13.                         } else {
    14.                                 right.push(a[i]);
    15.                         }
    16.                 }
    17.                 return quickSort(left).concat(midValue,quickSort(right));
    18.         }
    19.         console.log(quickSort([1,5,3,6,2,4,0]));


    2.冒泡排序

    1. /*冒泡排序法*/
    2.         function bubbleSort(a) {
    3.                 var length = a.length;
    4.                 var sortArray;
    5.                 for (var i = 0; i < length-1; i++) {
    6.                         for (var j = 0; j < length-i-1 ; j++) {
    7.                                 if (a[j] > a[j+1]) {
    8.                                         sortArray = a[j];
    9.                                         a[j] = a[j+1];
    10.                                         a[j+1] = sortArray;
    11.                                 }
    12.                         }
    13.                 }
    14.                 return a;
    15.         }
    16.         console.log(bubbleSort([2,1,3,6,5,4,7,0]));

    3.插入排序

    1. /*插入排序法*/
    2.         function insertSort(a) {
    3.                 var length = a.length;
    4.                 var sortArray;
    5.                 for (var i = 1; i < length; i++) {
    6.                         for (var j = 0; j < i ; j++) {
    7.                                 if (a[i] < a[j]) {
    8.                                         sortArray = a[i];
    9.                                         a[i] = a[j];
    10.                                         a[j] = sortArray;
    11.                                 }
    12.                         }
    13.                 }
    14.                 return a;
    15.         }
    16.         console.log(insertSort([0,6,5,3,4,2,1,7]));

    4.选择排序

    1. /*选择排序法*/
    2.         function selectSort(a) {
    3.                 for (var i = 0; i < a.length; i++) {
    4.                         var min = a[i];
    5.                         var k = i;
    6.                         for (var j = i + 1; j < a.length; j++) {
    7.                                 if (min > a[j]) {
    8.                                         min = a[j];
    9.                                         k = j;
    10.                                 }
    11.                         }
    12.                         a[k] = a[i];
    13.                         a[i] = min;
    14.                 }
    15.                 return a;
    16.         }
    17.         console.log(selectSort([5,1,4,0,3,2,7,6]));
    附加:js判断滚动条是否到底部

    <style>
    *{
    padding:0;
    margin:0;
    }
    .test{
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    600px;
    height: 300px;
    padding: 20px;
    margin: auto;
    overflow-y: auto;
    border:2px solid #DDD;
    }
    </style>
    <div class="test" id="test">
    <p style="height:400%"></p>
    </div>
    <script>
    var test = document.getElementById("test");
    test.addEventListener("scroll", function(){
    var str = "可滚动距离:"+ test.scrollHeight +" 滚动位置:"+ test.scrollTop + " 滚动容器高度:"+ test.clientHeight;
    var p = document.createElement("p");
    p.innerHTML = str;
    document.body.appendChild(p);
    }, false);
    </script>

  • 相关阅读:
    JOINTJs笔记-5 实现节点的自动布局
    实现蛇形节点布局
    jointjs笔记4- 设置线的label,
    vue-图片src路径不存在时,显示默认图片
    vue-codemirror-merge插件的使用
    谷歌点击下载链接,闪了一下没有下载
    几个常用的正则
    vue 组件中再套用组件的情况,子组件中获取不到数据
    element-ui 组件常见错误 confirm, 分页的切换页码改变,表格样式错位
    Vue学习之路---No.7(分享心得,欢迎批评指正)
  • 原文地址:https://www.cnblogs.com/kelly007/p/4650541.html
Copyright © 2011-2022 走看看