Java冒泡排序

目录

一、什么是冒泡排序?

二、冒泡排序原理

三、示例代码

一、什么是冒泡排序?

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

二、冒泡排序原理

                      0   1     2   3  4

int[] score  = {12,43, 23,1,5};

第一次冒泡:冒泡变量j最大值3

   冒泡变量j=0指向第一个数12

   1243比较,12<43,冒泡变量j=1指向43

   冒泡变量j=1指向的数43和后面数23比较,

   43>23交换4323,冒泡变量指向43

   {12, 23, 43,1,5}

   冒泡变量指向的数43和后面数1比较,交换431,冒泡变量指向43

   {12, 23, 1,43, 5}

   冒泡变量指向的数43和后面数5比较,交换435,冒泡变量指向43

   {12, 23, 1, 5,43}

第二次冒泡:冒泡变量j最大值2

   冒泡变量指向12

   冒泡变量指向的数12和后面数23比较,冒泡变量指向23

   冒泡变量指向的数23和后面数1比较,交换231,冒泡变量指向23

   {12, 1, 23, 5,43}

   冒泡变量指向的数23和后面数5比较,交换235,冒泡变量指向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);
		}
	}

}

 

你可能感兴趣的:(java,eclipse,排序算法)