论坛首页 入门技术论坛

Java基础: 冒泡排序

浏览 1986 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-12-10  
package bubbling;

public class Sort {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] iArray = { 65, 45, 78, 12, 4, 23, 88, 90, 33, 53 };
		int k = 0;
		// 循环次数计数器
		int count = 0;
		// 每次都要从第一个开始比,最后的不用再比
		for (int j = 0; j < iArray.length - 1; j++) {
			// 定义是否已经排列完成,可以结束
			boolean a = true;
			for (int i = 0; i < iArray.length - 1; i++) {
				// 对邻接的元素进行比较,如果后面的小,就交换
				if (iArray[i] > iArray[i + 1]) {
					k = iArray[i];
					iArray[i] = iArray[i + 1];
					iArray[i + 1] = k;
					// 如果进入到了这个条件,就说明后面还需要完成一次循环,检查整个排序情况
					a = false;
				}
				count++;
			}
			// 如果第二层for循环一直没有进入if交换,那么整个数组排序完成,a将为初始值true,这时就可以跳出整个循环
			if (a)
				break;
		}
		// 输出结果
		for (int i = 0; i < iArray.length; i++) {
			System.out.print(" " + iArray[i]);
		}
		System.out.println("\n 一共循环" + count + "次!");
	}
}
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics