快速排序
冒泡排序的思想方法:
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 + " ");
}
}
}
测试结果: