冒泡排序 - Bubble Sort

冒泡排序算是一种简单直观的排序算法。
时间复杂度为O(n*n)
空间复杂度为O(1)

1. 算法的基本过程

比较相邻的两个元素,如果第一个比第二个大,就交换两个的顺序。
一遍排序后最后一个元素会是最大的数。
然后对于剩下的元素重复上面的步骤(除过最后一个最大的元素),直到最后没有任何一对数字需要比较。

2. 动图演示

动图来自-https://www.runoob.com/w3cnote/bubble-sort.html注:以上动图摘自菜鸟教程

3. JAVA代码实现

package com.devin.algorithms;

public class BubbleSortDemo {
	public static void main(String[] args) {
		int[] data = new int[] { 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 };

		System.out.println(">>>>>>>>before doing bubble sort>>>>>>>>>");
		for (int i = 0; i < data.length; i++) {
			System.out.print(data[i] + ",");
		}
		System.out.println();

		// Do Bubble Sort
		for (int i = 1; i < data.length; i++) {
			for (int j = 0; j < data.length - i; j++) {
				if (data[j] > data[j + 1]) {
					int temp = data[j];
					data[j] = data[j + 1];
					data[j + 1] = temp;
				}
			}
		}

		System.out.println(">>>>>>>>after doing bubble sort>>>>>>>>>");
		for (int i = 0; i < data.length; i++) {
			System.out.print(data[i] + ",");
		}
	}
}

运行结果如下:

>>>>>>>>before doing bubble sort>>>>>>>>>
3,44,38,5,47,15,36,26,27,2,46,4,19,50,48,
>>>>>>>>after doing bubble sort>>>>>>>>>
2,3,4,5,15,19,26,27,36,38,44,46,47,48,50,
发布了7 篇原创文章 · 获赞 3 · 访问量 238

猜你喜欢

转载自blog.csdn.net/devin_xin/article/details/103277778