美文网首页程序员读书
常见算法前端JS实现 — 排序

常见算法前端JS实现 — 排序

作者: 橙小光 | 来源:发表于2019-05-21 14:02 被阅读0次

1.排序算法

1.1 冒泡排序

    //冒泡排序
    function bubbleSort(arr){
        var i = j = 0;
        for(i=1;i<arr.length;i++){
            for(j=0;j<=arr.length-i;j++){
                var temp = 0;
                if(arr[j]>arr[j+1]){
                     temp = arr[j];
                     arr[j] = arr[j+1];
                     arr[j+1] = temp;
                }
            }
        }
    }

1.2 快速排序

    //快速排序
    function quickSort(arr,l,r){
        if(l < r){
            var i = l, j = r, x = arr[i];
            while(i<j){
              while(i<j && arr[j]>x){
                 j--;
                 if(i<j) 
                 //这里用i++,被换过来的必然比x小,赋值后直接让i自加,不用再比较,可以提高效率
                 arr[i++] = arr[j];
                 while(i<j && arr[i]<x){
                    i++;            
                    if(i<j){
                       //这里用j--,被换过来的必然比x大,赋值后直接让j自减,不用再比较,可以提高效率
                       arr[j--] = arr[i];
                    }
                 }
              }
              arr[i] = x;
              quickSort(arr, l, i-1);
              quickSort(arr, i+1, r);
        }
    }

1.3 二路归并

    //将两个按值有序序列合并成一个按值有序序列,则称之为二路归并排序
    function merge(left, right) {
        var result = [],
        il = 0,
        ir = 0;    
        while (il < left.length && ir < right.length) {
            if (left[il] < right[ir]) {
                result.push(left[il++]);
            } else {
                result.push(right[ir++]);
            }
        }    
        while(left[il]){
            result.push(left[il++]);
        }   
        while(right[ir]){
            result.push(right[ir++]);
        }    
        return result;
    }

相关文章

  • 常见算法前端JS实现 — 排序

    1.排序算法 1.1 冒泡排序 1.2 快速排序 1.3 二路归并

  • 用JavaScript实现常见的排序算法

    前戏 复习了一些比较常见的排序算法,用JS实现,带一些实现思路。 无图,无脑贴代码。。 比较排序 冒泡排序 比较相...

  • 常见算法前端JS实现

    字符串操作 判断回文字符串 翻转字符串 思路1:反向遍历字符串 思路2:转化成array操作 生成指定长度的随机字...

  • 排序算法

    常见排序算法比较 参考资料:各种排序算法比较 参考资料:快速排序算法 必须知道的八大种排序算法【java实现】(一...

  • 前端排序算法总结;前端面试题2.0;JavaScript异步编程

    前端排序算法总结;前端面试题2.0;JavaScript异步编程 标签(空格分隔): Node.js 1、前端 排...

  • 前端常见算法的JS实现

    排序算法1、冒泡排序 2、快速排序 3、二路归并 字符串操作1、判断回文字符串 2、翻转字符串思路一:反向遍历字符...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 7大经典的排序算法总结实现

    作者 : 专注J2EE来源 : 博客园 常见排序算法总结与实现 本文使用Java实现这几种排序。以下是对排序算法总...

  • 编程算法之排序和查找算法

    查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。 一. 排序 常见...

  • 前端常见排序算法

    冒泡排序 插入排序 快速排序 选择排序 归并排序 希尔排序

网友评论

    本文标题:常见算法前端JS实现 — 排序

    本文链接:https://www.haomeiwen.com/subject/spxjzqtx.html