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

冒泡排序

程序员文章站 2022-07-26 17:30:15
public class MaoPao { public static void main(String []args){ int []s={1,4,2,5,3,6,7}; int temp; for(int i=0;i

冒泡排序

基本思想

冒泡排序的基本思想是:通过对待排序序列从前往后(从下标较小的元素开始),依次比较相邻元素的值,如发现逆序交换,使较大的值往后移。

图解

冒泡排序

代码实现

public static void main(String[] args) {
		int array[] = {10, 8, 3, 5, 2, 7, 1, 4, 9, 6};
		//临时变量用来交换数据
		int temp = 0;
		//boolean变量控制结束条件
		boolean flag = false;
		//排序的趟数
		for (int i = 0; i < array.length - 1; i++) {
			flag = false;
			//第i趟排序
			for (int j = 0; j < array.length - 1 - i; j++) {
				//如果这一个数据大于下一个元素,交换
				if (array[j] > array[j + 1]) {
					temp = array[j];
					array[j] = array[j + 1];
					array[j + 1] = temp;
					//如果交换,给flag赋值为true
					flag = true;
				}
			}
			//如果没有交换,证明已经有序,直接退出循环
			if (!flag) {
				break;
			}
			System.out.printf("第%d趟循环的结果为:", (i + 1));
			System.out.println(Arrays.toString(array));
		}
	}

结果显示

冒泡排序

备注

这里做了优化,如果在某一次的比较中发现没有数据的位置发生交换,则直接退出程序,不会再继续比较下去,相对来说提高了代码的运行速度。

本文地址:https://blog.csdn.net/weixin_54143690/article/details/111998199

相关标签: java 数据结构