快速排序

分组后的数组:4,5,14,23,52,11,
分组后的数组:4,5,11,23,52,14,
分组后的数组:4,5,11,14,52,23,
分组后的数组:4,5,11,14,23,52,
排序后的数组:4,5,11,14,23,52,

 

package datastructure;

public class QuickSort {

	public QuickSort() {
	}

	public static void quickSort(int[] datas, int low, int high) {
		if (low < high) {
			int p = partition(datas, low, high);
			quickSort(datas, low, p - 1);
			quickSort(datas, p + 1, high);
		}
	}

	public static int partition(int[] datas, int low, int high) {
		int index = low - 1;
		int last = datas[high];
		for (int j = low; j < high; j++) {
			if (datas[j] < last) {
				index++;
				if (j != index) {
					int tmp = datas[j];
					datas[j] = datas[index];
					datas[index] = tmp;
				}
			}
		}
		index++;
		if (index != high) {
			int tmp = datas[high];
			datas[high] = datas[index];
			datas[index] = tmp;
		}
		System.out.print("分组后的数组:");
		for(int i=0;i<datas.length;i++){
			System.out.print(datas[i]+",");
		}
		System.out.println();
		return index;
	}

	public static void main(String[] args) {
		int[] datas = { 11, 4, 14, 23, 52, 5 };
		QuickSort.quickSort(datas, 0, datas.length - 1);
		System.out.print("排序后的数组:");
		for(int i=0;i<datas.length;i++){
			System.out.print(datas[i]+",");
		}
	}

}

 

if (j != index)

if (index != high)

 

这两个判断我看网上一般人都没加,如果是不加的话有可能造成元素本身的交换,浪费资源

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值