栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

用JAVA完成快速排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用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);
		}
	}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434209.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号