`
IT阿狸
  • 浏览: 65555 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java中的冒泡排序,选择排序,插入排序

阅读更多

一、冒泡排序

/**
 * 冒泡排序
 * 
 * @author miao
 * 
 */
public class BubbleSort {

	/**
	 * 用Java写出一个冒泡排序程序,输入10个整数,输出排序结果
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// 需要排序的数组
		int[] a = { 4, 2, 1, 6, 3, 6, 0, -5, 1, 1 };
		// 调用排序方法
		bubbleSort(a);
		// 遍历输出结果
		for (int i = 0; i < 10; i++) {
			System.out.printf("%d ", a[i]);
		}
	}

	/**
	 * 排序
	 * 
	 * @param source
	 */
	public static void bubbleSort(int[] source) {
		for (int i = source.length - 1; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				if (source[j] > source[j + 1]) {
					swap(source, j, j + 1);
				}
			}
		}
	}

	/**
	 * 交换两数
	 * 
	 * @param source
	 * @param x
	 * @param y
	 */
	private static void swap(int[] source, int x, int y) {
		int temp = source[x];
		source[x] = source[y];
		source[y] = temp;
	}
}

 

 

二、选择排序

/**
 * 选择排序
 * 
 * @author miao
 * 
 */
public class SelectionSort {

	/**
	 * 用Java写出一个选择排序,输入10个整数,输出排序结果
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// 需要排序的数组
		int[] a = { 4, 2, 1, 6, 3, 6, 0, -5, 1, 1 };
		// 调用排序方法
		selectionSort(a);
		// 遍历输出结果
		for (int i = 0; i < 10; i++) {
			System.out.printf("%d ", a[i]);
		}

	}

	/**
	 * 选择
	 * 
	 * @param source
	 */
	public static void selectionSort(int[] source) {
		for (int i = 0; i < source.length; i++) {
			for (int j = i + 1; j < source.length; j++) {
				if (source[i] > source[j]) {
					swap(source, i, j);
				}
			}
		}
	}

	/**
	 * 交换两数
	 * 
	 * @param source
	 * @param x
	 * @param y
	 */
	private static void swap(int[] source, int x, int y) {
		int temp = source[x];
		source[x] = source[y];
		source[y] = temp;
	}

}

 

 

三、插入排序

/**
 * 插入排序
 * 
 * @author miao
 * 
 */
public class InsertSort {

	/**
	 * 用Java写出一个插入排序,输入10个整数,输出排序结果
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// 需要排序的数组
		int[] a = { 4, 2, 1, 6, 3, 6, 0, -5, 1, 1 };
		// 调用排序方法
		insertSort(a);
		// 遍历输出结果
		for (int i = 0; i < 10; i++) {
			System.out.printf("%d ", a[i]);
		}
	}

	/**
	 * 插入
	 * 
	 * @param source
	 */
	public static void insertSort(int[] source) {
		for (int i = 0; i < source.length; i++) {
			for (int j = i; (j > 0) && (source[j] < source[j - 1]); j--) {
				swap(source, j, j - 1);
			}
		}
	}

	/**
	 * 交换两数
	 * 
	 * @param source
	 * @param x
	 * @param y
	 */
	private static void swap(int[] source, int x, int y) {
		int temp = source[x];
		source[x] = source[y];
		source[y] = temp;
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics