`
thingkau
  • 浏览: 72543 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

排序【冒泡排序】

J# 
阅读更多
冒泡排序思想:
较大的记录往下沉淀。
/**
 * SimpleBubbleSort.java
 * 
 * 冒泡排序。
 * 
 * @author Administrator
 */

public class SimpleBubbleSort {

	public static void simpleBubbleSort(int[] a) {

		for (int i = a.length; i > 1; i--)

			for (int j = 0; j < i - 1; j++)

				if (a[j] > a[j + 1])

					Util.swap(a, j, j + 1);

	}

	public static void main(String[] args) throws Exception {

		if (args.length == 0) {
			System.out.println("请输入数字以空格隔开");
			System.exit(-1);
		}

		int[] a = new int[args.length];

		for (int i = 0; i < args.length; i++)

			a[i] = Integer.parseInt(args[i]);

		simpleBubbleSort(a);

		// 输出排序后的数组元素。
		for (int i = 0; i < a.length; i++)
			System.out.println(a[i]);

	}

}


改进型冒泡排序:
/**
 * EnhancedBubbleSort.java
 * 
 * 改进型冒泡排序。
 * 
 * @author Administrator
 */

public class EnhancedBubbleSort {

	public static void enhancedBubbleSort(int[] a) {

		int i = a.length - 1;

		while (i > 0) { // 表明上一趟曾进行过记录交换

			int lastExchangedIndex = 0;

			for (int j = 0; j < i; j++)

				if (a[j] > a[j + 1]) {

					Util.swap(a, j, j + 1);

					lastExchangedIndex = j;

				}

			i = lastExchangedIndex; // 一趟排序中无序序列最后一个元素的位置
		}

	}

	public static void main(String[] args) throws Exception {

		if (args.length == 0) {
			System.out.println("请输入数字以空格隔开");
			System.exit(-1);
		}

		int[] a = new int[args.length];

		for (int i = 0; i < args.length; i++)

			a[i] = Integer.parseInt(args[i]);

		enhancedBubbleSort(a);

		// 输出排序后的数组元素。
		for (int i = 0; i < a.length; i++)
			System.out.println(a[i]);

	}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics