首先定义个数组:
int[] arr = {10, 1, 3, 5, 7, 9};运行结果如下:
[0]:10 [1]:1 [2]:3 [3]:5 [4]:7 [5]:9运行结果如下:
10 1 3 5 7 9冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。来吧展示:
package com.baidou; import java.util.Arrays; import java.util.Random; /** * 冒泡排序 * Created by baidou on 2020/9/23. */ public class ArrayTest03 { public static void main(String[] args) { int[] arr = new int[100]; Random random = new Random(); for (int i = 0; i < arr.length; i++) { arr[i] = random.nextInt(arr.length + 1); } System.out.println("原数组:"); System.out.println(Arrays.toString(arr)); System.out.println("排序后的数组为:"); // Arrays.sort(arr); // System.out.println(Arrays.toString(arr)); for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { //交换两个变量的值需要借助一个临时变量。 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } System.out.println(Arrays.toString(arr)); } }运行结果如下:
原数组: [24, 0, 39, 0, 55, 67, 6, 86, 34, 100, 24, 51, 77, 47, 74, 80, 82, 75, 63, 31, 20, 51, 40, 19, 35, 19, 24, 61, 11, 90, 16, 18, 80, 45, 82, 95, 24, 14, 80, 47, 56, 5, 3, 62, 15, 15, 2, 14, 75, 85, 40, 50, 56, 55, 36, 31, 51, 28, 2, 0, 52, 78, 45, 92, 91, 14, 39, 38, 30, 70, 52, 40, 87, 75, 60, 32, 97, 53, 19, 26, 28, 71, 82, 53, 9, 27, 61, 55, 38, 2, 89, 32, 70, 26, 53, 74, 85, 44, 30, 58] 排序后的数组为: [0, 0, 0, 2, 2, 2, 3, 5, 6, 9, 11, 14, 14, 14, 15, 15, 16, 18, 19, 19, 19, 20, 24, 24, 24, 24, 26, 26, 27, 28, 28, 30, 30, 31, 31, 32, 32, 34, 35, 36, 38, 38, 39, 39, 40, 40, 40, 44, 45, 45, 47, 47, 50, 51, 51, 51, 52, 52, 53, 53, 53, 55, 55, 55, 56, 56, 58, 60, 61, 61, 62, 63, 67, 70, 70, 71, 74, 74, 75, 75, 75, 77, 78, 80, 80, 80, 82, 82, 82, 85, 85, 86, 87, 89, 90, 91, 92, 95, 97, 100]