package arithmetictest;
import java.util.Scanner;
/**
* @version 1.0
* @Author 爱学习的小笨蛋
* @Date 2023/2/8 19:51
* @注释
*/
public class QuickSort {
public static void main(String[] args) {
int[] array = new int[10];
System.out.println("请您输入任意的10个整数:");
Scanner scan = new Scanner(System.in);
for (int i = 0; i < array.length; i++) {
array[i] = scan.nextInt();
}
QkSORT qkSORT = new QkSORT();
qkSORT.quicksort(array);
qkSORT.outPut(array);
}
}
class QkSORT {
//元素交换的中间值
int temp = 0;
/**
*快速排序的核心思想: 3 1 4 2,
* 首先我们看这里有四个数,那么就是3要跟后面所有的数比较
* 1也要跟后面的数进行比较,4也跟后面的数比较,那么现在就是要比较三轮
* 那么最外面那一层循环就循环三次,那么就是数组的长度 - 1.那么里面那
* 一层循环的条件就是,它的起始下标应该是i + 1,为什么呢,因为我们要
* 两个数进行比较嘛,外面那一层循环i是一个元素的下标那么我们里面这一
* 层循环不就是它旁边的那一个元素了嘛。然后内循环的终止条件是内循环要
* 到达最后一个元素2,那么下标直接就是小于数组的长度。每一次排序结果
* 都是将最小的
* 元素放在前面
* 第一轮排序结果:1 3 4 2
* 第二轮排序结果:1 2 4 3
* 第三轮排序结果:1 2 3 4
*/
//快速排序的方法
public void quicksort(int array[]) {
for(int i = 0;i < array.length - 1;i++)
for(int j = i + 1;j < array.length;j++) {
if(array[i] > array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
//输出数组的方法
public void outPut(int[] array) {
for(int i = 0;i < array.length;i++) {
System.out.print(array[i] + " ");
}
System.out.println("\n");
}
}