用JAVA完成快速排序

用JAVA完成快速排序,第1张

用JAVA完成快速排序

快速排序的思想是通过方法第一次排序完成后,在调用本身的方法再次进行调用,这就是递归的思想。笔者这里给出一个数组int[] arr=new int[]{6,1,2,7,9,3,4,5,10,8},给左边设置i,右边设置j,目标数设置为最左边的6,从右边检索到左边找比目标数6小的数,第一次找到为5,i向右走,i++;在从右边检索到左边,找比目标数大的数,第一次找到为7,j向左走j--;再进行5和7的交换,当然这里需要注意,i和j都是数组的索引,因此i

代码如下:

public class Sort {
	public static void main(String[] args) {
		int arr[] = { 6, 1, 2, 7, 9, 3, 4, 5, 10, 8 };
		Quicksort(arr, 0, arr.length - 1);
		System.out.print("[");
		for (int i = 0; i < arr.length; i++) {
			if(i==arr.length-1) {
				System.out.print(arr[i]);
			}else {
				System.out.print(arr[i] + ",");
			}
		}
		System.out.println("]");
	}

	public static void Quicksort(int arr[], int left, int right) {
		if (left > right) {
			return;
		} else {
			;
			int i = left;
			int j = right;
			int base = arr[left];
			while (i != j) {

				while (arr[j] <= base && i < j) {
					j--;
				}
				while (arr[i] >= base && i < j) {
					i++;
				}

				int temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
			arr[left] = arr[i];
			arr[i] = base;
			Quicksort(arr, left, i - 1);
			Quicksort(arr, i + 1, right);
		}
	}

运行结果:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5118493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存