目录
一、什么是冒泡排序?
二、冒泡排序原理
三、示例代码
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
0 1 2 3 4
int[] score = {12,43, 23,1,5};
第一次冒泡:冒泡变量j最大值3
冒泡变量j=0指向第一个数12
12和43比较,12<43,冒泡变量j=1指向43
冒泡变量j=1指向的数43和后面数23比较,
43>23交换43和23,冒泡变量指向43
{12, 23, 43,1,5}
冒泡变量指向的数43和后面数1比较,交换43和1,冒泡变量指向43
{12, 23, 1,43, 5}
冒泡变量指向的数43和后面数5比较,交换43和5,冒泡变量指向43
{12, 23, 1, 5,43}
第二次冒泡:冒泡变量j最大值2
冒泡变量指向12
冒泡变量指向的数12和后面数23比较,冒泡变量指向23
冒泡变量指向的数23和后面数1比较,交换23和1,冒泡变量指向23
{12, 1, 23, 5,43}
冒泡变量指向的数23和后面数5比较,交换23和5,冒泡变量指向23
{12, 1, 5, 23, 43}
第三次冒泡:冒泡变量j最大值1
{1,12, 5, 23, 43}
{ 1, 5, 12, 23, 43}
第四次冒泡:冒泡变量j最大值0
{ 1, 5, 12, 23, 43}
解释:i
数组长度是5,需要四次冒泡。i<5-1;i<4;i取值0,1,2,3正好四次。
j
第一次冒泡,i=0 j最大值小于score.length-1
第二次冒泡,i=1 最后一个值是有序score.length-1-1
第三次冒泡,i=2 最后两个值是有序score.length-1-2
第四次冒泡,i=3 最后三个值是有序score.length-1-3
public class BubblingSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = { 6, 5, 4, 1, 2, 3 };
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;
}
}
}
for (int i : arr) {
System.out.println(i);
}
}
}