java排序算法—冒泡排序

快速排序

冒泡排序的思想方法:
1.从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;
2.下一次继续这个过程,直到所有数据元素都排好序。算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

代码实现

public class BubbleSort {
	public static void main(String[] args) {
		Scanner read = new Scanner(System.in);// 创建Scanner对象read 接受从控制台输入
		int n;// 元素个数
		System.out.println("请输入元素个数:");
		n = read.nextInt();
		int arr[] = new int[n];
		int k, z;
		for (k = 0; k < n; k++) {
			arr[k] = read.nextInt(); //接受控制台输入的数据
		}
		//int[] arr = { 5, 7, 3, 1, 6, 8, 9, 2 };
		System.out.print("排序前的数组为:");
		for (int num : arr) {			//显示排序前数组
			System.out.print(num + " ");
		}
		System.out.println(" ");
		for (int i = 0; i < arr.length - 1; i++) {
			// System.out.println("---------");
			//排序代码段
			for (int j = 0; j < arr.length - i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					System.out.println(arr[j]+"与"+arr[j+1]+"交换");   //输出交换过程
					int a = arr[j + 1];
					arr[j + 1] = arr[j];
					arr[j] = a;
					
				}
			}
		}
		System.out.println("");
		System.out.print("冒泡排序后的数组为:");	//显示结果
		for (int num2 : arr) {
			System.out.print(num2 + " ");
		}
	}
}

测试结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/nuoyan2018/article/details/83374307