`
kongxiantao
  • 浏览: 112097 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript 排序

 
阅读更多

//生成20-100之间的20个随机数
function getSortList() {
    var arr_a = [];
    for (var i = 0; i < 20; i++) {
        arr_a.push(Math.floor(Math.random() * 1000));
    }
    return arr_a;
}

//冒泡排序
//交换相邻位置的元素,每次把最小元素换到最左边,每次范围加一。
function bubbleSort() {
    var a = getSortList(),
    l = a.length;
    document.write('冒泡前的:    ' + a + '<br/>');
    if (l <= 1) {
        return true;
    }
    var min;
    for (var i = 0; i < l; i++) {
        min = a[i];
        for (var j = i; j < l; j++) {
            if (a[j] < min) {
                min = a[j];
                a[j] = a[i];
                a[i] = min;
            }
        }
    }
    document.write('冒泡排序:    ' + a + '<br/><br/>');
}
bubbleSort();

//插入排序
//O(N^2)     把第N个元素插入前N-1有序的数组中,从后往前扫描,不符合条件的元素往后移,符合条件就将第N个元素放入当前位置。
function insertSort(list) {
    var a = getSortList(),
    l = a.length,
    b = [];
    document.write('冒泡前的:    ' + a + '<br/>');
    if (l <= 1) {
        return true;
    }
    for (var i = 0; i < l; i++) {
        b[i] = a[i];
        for (var j = l; j >= 0; j--) {
            var max = b[j];
            if (b[j - 1] && b[j - 1] > b[j]) {
                max = b[j - 1];
                b[j - 1] = b[j];
                b[j] = max;
            }
        }
    }
    document.write('插入排序:    ' + b + '<br/><br/>');
}
insertSort(list)

//快速排序
//O(N*logN) (平均情况)     找到一个参考元素,将比它小的元素放到其左边,比它大的元素放到其右边,参考元素就在最终的位置,再对左右进行排序。
function quickSort(list) {
    var a = [],
    b = [],
    l = list.length - 0,
    middle = l % 2 === 0 ? l / 2 : ((l - 1) / 2);
    if (l <= 2) {
        return list;
    }
    var left = 0,
    right = 0;
    for (var i = 0; i < l; i++) {
        if (i === middle) {
            continue;
        }
        if (list[middle] > list[i]) {
            a[left++] = list[i];
        } else {
            b[right++] = list[i];
        }
    }
    a[left++] = list[middle];
    return quickSort(a).concat(quickSort(b));
}
var list = getSortList();
document.write('冒泡前的:    ' + list + '<br/>');
document.write('快速排序:    ' + quickSort(list) + '<br/><br/>');

分享到:
评论

相关推荐

    javascript排序表格

    javascript动态排序表格 javascript动态排序表格 javascript动态排序表格 javascript动态排序表格

    使用 JavaScript 排序数据并渲染到页面+源码+demo演示

    使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+...

    javascript排序算法实现

    排序算法是计算机科学的基础,JavaScript中的排序算法实现可以帮助我们更高效地处理数组数据。本篇文章将详细探讨JavaScript中几种常见的排序算法及其实现。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,...

    JavaScript排序算法动画演示效果的实现方法

    ### JavaScript排序算法动画演示效果的实现方法 实现JavaScript排序算法动画演示效果是一个涉及前端技术栈的有趣话题。其核心在于如何将排序算法的每一步骤用动画的形式展示给用户,同时保证动画的流畅性和准确性。...

    基于javascript排序算法

    基于javascript的排序算法源码,包括冒泡排序、选择排序、希尔排序、插入排序、快速排序、归并排序、基数排序、堆排序

    javascript排序分页(转载)

    本篇文章将详细探讨如何使用JavaScript,结合jQuery库,来实现数据的分页显示以及表格内容的排序。 **一、排序** 在JavaScript中,数组的排序可以使用`Array.prototype.sort()`方法。这个方法接受一个比较函数作为...

    JavaScript排序二叉树

    简单的JavaScript排序二叉树,方便理解,由浅入深学习必备

    Javascript表格排序大全

    3. **原生JavaScript排序**:你可以通过获取表格数据,对其进行排序,然后重新渲染表格。例如,使用`Array.prototype.sort()`函数对表格数据进行排序,再利用DOM操作更新表格内容。 4. **事件监听**:为了实现点击...

    javascript经典特效---数字排序.rar

    在这个“数字排序.rar”压缩包中,我们很可能是看到了一个关于如何使用JavaScript进行数字排序的实例。 在JavaScript中,数组的排序可以通过`Array.prototype.sort()`方法来实现。这个方法接受一个可选的比较函数...

    JavaScript 中常见排序算法详解.pdf

    JavaScript 中常见排序算法详解

    javascript排序函数实现数字排序

    javascript排序函数实现数字排序 [removed] function SortNumber(obj,func) //定义通用排序函数 { //参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常 if(!(obj instanceof Array) || !(func ...

    javascript 操作 Table 排序

    JavaScript排序主要通过数组的`sort()`方法实现,但这个方法并不直接适用于HTML表格。首先,我们需要获取表格数据并将其转换为二维数组。这可以通过遍历表格的所有行和单元格来完成: ```javascript let table = ...

    javascript直接排序

    JavaScript 直接排序是一种在前端对数据进行处理的技术,它主要应用于从服务器获取数据后,对数据进行客户端的动态排序,以满足用户交互时的实时排序需求。在本例中,我们关注的是如何利用JavaScript对从数据库读取...

    javascript数组的sort方法排序例子

    运用javascript排序,数组的sort方法

    JavaScript实现表格排序

    这篇我们将深入探讨如何使用JavaScript实现表格排序,包括对数字、日期和汉字的排序。 首先,我们需要理解HTML表格的基本结构,通常由`&lt;table&gt;`、`&lt;tr&gt;`(行)、`&lt;th&gt;`(表头)和`&lt;td&gt;`(数据单元格)组成。为了...

    sortingjs:with用JavaScript实现的排序算法集合

    JavaScript排序算法 使用JavaScript实现的排序算法集合。 到目前为止,我们已经在此介绍了 , , 算法。 有关更多排序算法,请继续关注! 运行此应用程序 该项目是使用commonjs约定编写的,即在nodejs环境中编写的,...

    JavaScript-数据排序添加.rar

    这个名为"JavaScript-数据排序添加.rar"的压缩包显然包含了与使用JavaScript处理数据排序和添加相关的资源。下面我们将深入探讨这些知识点。 首先,我们看到一个名为"data.css"的文件,这通常用于定义网页的样式。...

    leetcode刷题免费吗-Node-Sort-Algorithms:基于众所周知的算法制作的Node.js和javascript排序库包括:

    javascript 排序库包括:珠排序、重力排序、桶排序、分箱排序、计数排序、插入排序、合并排序、基数排序 排序算法是一种将列表中的元素按一定顺序排列的算法。 最常用的顺序是数字顺序和字典顺序。 高效排序对于优化...

Global site tag (gtag.js) - Google Analytics