美文网首页
Java 实现冒泡排序

Java 实现冒泡排序

作者: 又语 | 来源:发表于2020-04-12 18:01 被阅读0次

本文介绍冒泡排序原理及 Java 语言实现。


目录

  • 冒泡排序原理
  • 代码实现

冒泡排序原理

  1. 比较相邻的元素,升序时如果第一个比第二个大,就实现交换,降序时如果第一个比第二个小,就实现交换;
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对;
  3. 针对所有的元素重复以上的步骤,除了最后一个;
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

代码实现

package tutorial.java.util;

public class BubbleSortUtils {

    public static <T extends Comparable> T[] sort(T[] array, SortType sortType) {
        T temp;
        int comparableValue = sortType == SortType.ASC ? 1 : -1;
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j].compareTo(array[j + 1]) == comparableValue) {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }

    public static enum SortType {
        ASC, DESC;
    }
}

单元测试:

package tutorial.java.util;

import org.apache.commons.lang3.StringUtils;
import org.junit.Assert;
import org.junit.Test;

public class BubbleSortUtilsTest {

    @Test
    public void test() {
        Integer[] data = {10, 5, 1, 20, 3, 8};
        Integer[] asc = BubbleSortUtils.sort(data, BubbleSortUtils.SortType.ASC);
        Assert.assertEquals("1,3,5,8,10,20", StringUtils.join(asc, ","));
        Integer[] desc = BubbleSortUtils.sort(data, BubbleSortUtils.SortType.DESC);
        Assert.assertEquals("20,10,8,5,3,1", StringUtils.join(desc, ","));
    }
}

相关文章

  • 冒泡排序 选择排序

    冒泡排序 java 实现 C 实现 选择排序 java 实现 C 实现

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • Java 实现冒泡排序

    本文介绍冒泡排序原理及 Java 语言实现。 目录 冒泡排序原理 代码实现 冒泡排序原理 比较相邻的元素,升序时如...

  • 常用排序算法的Java实现

    冒泡、插入、选择、归并、快速排序的Java实现

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

  • java 实现排序算法之「选择排序」

    java 实现排序算法系列 继冒泡排序算法之后,选择排序终于和大家见面了。为什么冒泡排序之后要说选择排序呢,是因为...

  • java快速学习排序---冒泡排序

    1.java实现冒泡排序 (1)、图解冒泡排序 (2)、冒泡排序原理 把相邻的元素两两比较,当一个元素大于它右侧相...

  • 面试知识点

    排序冒泡排序快速排序选择排序插入排序二路归并 查找二分查找 排序和查找的java实现 java语言Java字符串字...

  • 排序算法——冒泡排序

    冒泡排序(Bubble sort) 目录 1. 基本原理 图解 2. 代码实现 java 一、基本原理 冒泡排序(...

  • 必须知道的排序算法和对应语言的实现

    必须知道的排序算法—Java实现 1 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较...

网友评论

      本文标题:Java 实现冒泡排序

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