java排序算法—快速排序

快速排序
快速排序的思想方法:
1.先从数列中取出一个数作为基准数,记为x。

2.分区过程,将不小于x的数全放到它的右边,不大于x的数全放到它的左边。(这样key的位置左边的没有大于key的,右边的没有小于key的,只需对左右区间排序即可)。

3.再对左右区间重复第二步,直到各区间只有一个数。

代码实现

public class SelectionSort {
	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 + " ");
		}
		// int[] arr = { 5, 7, 3, 1, 6, 8, 9, 2 };
		int min;
		//选择排序代码段
		for (int i = 0; i < arr.length - 1; i++) {
			min = i;// 默认最小为第一个
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[j] < arr[min]) {
					min = j;
				}
			}
			int temp = arr[i];
			arr[i] = arr[min];
			arr[min] = temp;
		}
		System.out.print("选择排序结果为:");
		for (int num2 : arr) {
			System.out.print(num2 + " ");
		}
	}
}

猜你喜欢

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