V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
HackerJax
V2EX  ›  程序员

是我理解冒泡排序错误了吗?

  •  
  •   HackerJax · 120 天前 · 3138 次点击
    这是一个创建于 120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    维基百科原文:

    冒泡排序(英语:Bubble Sort )又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

    注意这句话这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,实际上很多例子是重复比较第 0 到第 i 个元素,将最大的数放到 i+1 的位置,是否与越小的元素会经由交换慢慢“浮”到数列的顶端相反呢?例如如下伪代码:

    function bubble_sort (array, length) {
        var i, j;
        for(i from 0 to length-1){
            for(j from 0 to length-2-i){
                if (array[j] > array[j+1])
                    swap(array[j], array[j+1])
            }
        }
    }
    

    所以干脆叫“沉塘排序”?

    14 条回复    2024-08-29 00:25:20 +08:00
    zdt3476
        1
    zdt3476  
       120 天前   ❤️ 1
    Bubble sort, sometimes referred to as sinking sort
    MozzieW
        2
    MozzieW  
       120 天前
    本质是一样的,遍历的顺序是实现差异。

    你如果觉得无聊,叫“上天排序”也可以,就是“你怎么不上天呢”那个上天
    HackerJax
        3
    HackerJax  
    OP
       120 天前
    @zdt3476 请问这句话是哪里看到的
    HackerJax
        4
    HackerJax  
    OP
       120 天前
    @zdt3476 看到了,英文维基第一句
    BBrother
        6
    BBrother  
       120 天前
    那看你怎么定义数列顶端了
    iOCZS
        7
    iOCZS  
       120 天前
    地上也是地下
    paopjian
        8
    paopjian  
       120 天前
    算法里不要根据数值大小联系为现实现象, 不然背包问题装石头又要被抬杠是装箱问题了
    pkoukk
        9
    pkoukk  
       119 天前
    同意 8#
    假如给你一个数列,里面的每个元素是 doi 的时长,那么请问,如果我需要一个 x 能力的排序,是沉塘还是冒泡?
    zero47
        10
    zero47  
       119 天前
    先放左边,j 从 i 到 length-1, 不就是冒泡吗?我也好奇为啥例子总是先放右边
    lfitzgerald
        11
    lfitzgerald  
       119 天前
    @iOCZS 我的理解是:地上是指地面以上,地下是指地面以下。这跟有卵用和没卵用不一样
    atuocn
        12
    atuocn  
       119 天前
    只是一个相对的说法吧。大数沉下去,不等价与小数浮上来吗。叫冒泡估计和递归有关系吧,每次冒泡,都是去掉沉底元素后剩下元素的递归。
    Georgedoe
        13
    Georgedoe  
       119 天前
    要抽象出 comparator 的概念 , 大和小是人为定义的
    cybort
        14
    cybort  
       119 天前 via Android
    你把交换的条件改一下看看?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5953 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:22 · PVG 10:22 · LAX 18:22 · JFK 21:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.