doubleyong
管理员
管理员
  • 最后登录2025-10-18
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:5093回复:0

【排序】冒泡排序 -- js实现

楼主#
更多 发布于:2020-04-14 21:27
基本思想两两比较相邻记录的关键字,如果反序则交换,直至没有反序为止


详细实现方法

  1. 对比第一项和第二项
  2. 如果第一项应该在第二项的后面,交换他们
  3. 对比第二项和第三项
  4. 如果第二项应该在第三项之后,交换他们
  5. 持续直到数据结束


上述,方法称之为:  正向冒泡算法


function bubbleSort(items){
    var len = items.length,
        i, j, stop;
    for (i=0; i < len; i++){
        for (j=0, stop=len-i; j < stop; j++){
            if (items[j] > items[j+1]){
                swap(items, j, j+1);
            }
        }
    }
    return items;
}
如果从最后一项开始,两两比较的话,我们称之为:反向冒泡算法
function bubbleSort(items){
    var len = items.length,
        i, j;
    for (i=len-1; i >= 0; i--){
        for (j=len-i; j >= 0; j--){
            if (items[j] < items[j-1]){
                swap(items, j, j-1);
            }
        }
    }
    return items;
}


还是,一种思想,也是冒泡算法,即使用了两两比较,只是不是左右相比,而是某一位,与其它位相比
详细方法:
1.  第一位与第二位比,不合条件交换
2. 第一位和第三位比,不合条件
3. 第一位,一直比到最后一位,找到符合条件的第一个数
4. 在依次找第二个数,第三个数,直到最后一个数


代码实现:
function bubbleSort(items){
    var len = items.length,
        i, j;
    for (i=0; i < len; i++){
        for (j=i+1;j<len; j++){
            if (items[i] > items[j]){
                swap(items, j, j+1);
            }
        }
    }
    return items;
}
参考:
https://www.cnblogs.com/alaner/p/9515070.html
http://caibaojian.com/javascript-bubble-sort.html

最新喜欢:

小达人小达人 Frivolous。Frivol...
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号