冒泡排序算法(java)
文章内容发布于 1 天前;最后修改于 1 日前。其中的信息可能发生变化或产生更改,敬请留意。

冒泡排序算法(java)

逻辑

  1. 遍历数组,比较相邻的两个元素。
  2. 每一轮遍历后,当前未排序部分会"冒泡"到正确的位置([标准冒泡算法]数组末尾,[反向冒泡算法]数组前列)。
  3. 重复上述过程,但每轮比较的区间长度减 1(因为末尾/前列已排序的部分无需再比较)。

标准冒泡排序算法(Bubble Sort)

for (int i = 0; i < arr.length - 1; i++) {
    for (int j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
            int temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}

标准反向冒泡算法(Reverse Bubble Sort)

for (int i = 0; i < arr.length - 1; i++) {
    for (int j = arr.length - 1; j > i; j--) {
        if (arr[j] < arr[j - 1]) {  
            int temp = arr[j];
            arr[j] = arr[j - 1];
            arr[j - 1] = temp;
        }
    }
}

总结

两种实现都是正确的冒泡排序变体:

  • 标准冒泡:大元素向后移动(下沉)
  • 反向冒泡:小元素向前移动(上浮)

两种算法的时间复杂度都是O(n²),空间复杂度都是O(1)。反向冒泡在某些情况下可能比标准冒泡少几次交换,但本质上性能相同。

文章「冒泡排序算法(java)」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/2713」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
本页面暂时没有评论......

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇