欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

冒泡排序(java)

程序员文章站 2022-03-22 09:02:09
...
  1. 冒泡排序概述
    对N个数进行排序,依次比较相邻两个数,大的数放在后面,小的数放在前面。
    第一轮:首先比较第一个数和第二个数,将大的数放在后面,接下来比较第二个数和第三个数,大的放后面,一直到最后一个数为止。比较完后最后一个数应该就是最大的数。
    第二轮:除开最大的那个数,和第一轮一样的方法进行比较,倒数第二个数应该就是第二大的数。
    .
    .
    .
    第N-1轮:结束,排序完成。
  2. 实现代码如下:
package sort;

import java.util.Arrays;

/**
 * 冒泡排序分析
 * @author nanyue
 *
 */
public class Sort {
	public static void main(String[] args) {
		int sortArray [] = {132,23,29,12,9};//定义一个数组并赋值
		System.out.println("冒泡排序");
		bubbleSort(sortArray);//调取冒泡排序方法
	}

	/**
	 * 冒泡排序
	 * @param arr
	 */
	public static void bubbleSort(int [] arr){
		int temp;
		for(int i = 0;i < arr.length-1;i++){
			System.out.println("第" + i + "轮");
			for(int j = 0;j < arr.length-1-i;j++){
				if(arr[j] > arr[j+1]){//相邻两数比较,大的放后面
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
					System.out.println(Arrays.toString(arr));
				}else{
					System.out.println(Arrays.toString(arr));
				}
			}
		}
	}
}

输出结果:

冒泡排序
第0轮
[23, 132, 29, 12, 9]
[23, 29, 132, 12, 9]
[23, 29, 12, 132, 9]
[23, 29, 12, 9, 132]
第1轮
[23, 29, 12, 9, 132]
[23, 12, 29, 9, 132]
[23, 12, 9, 29, 132]
第2轮
[12, 23, 9, 29, 132]
[12, 9, 23, 29, 132]
第3轮
[9, 12, 23, 29, 132]

从输出结果看,比较了N-1轮,每次比较的数为相邻两数,比较完毕大的数放在了后面。

相关标签: 排序