文档章节

Java:快速排序(双指针版)

ricardohn
 ricardohn
发布于 2016/05/13 09:57
字数 153
阅读 79
收藏 0

import java.util.Arrays;

public class qucik_sort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub 
		int[] scores={5,4,6,3,7,2,8,1,9,10};
		int[] scores1={4,2,3};
		//System.out.println(partition(scores,0,scores.length));
		System.out.println(Arrays.toString(quick_sort(scores,0,scores.length-1)));
		//System.out.println(Arrays.toString(quick_sort(scores1,0,scores1.length-1)));
	}
	public static int partition(int[] arrays,int p,int q){
		int x=arrays[p];
		int i=p;
		int tmp;
		int j=q;
		while(i <j){
			while(i<j && arrays[j]>=x){
				j--;}
			if(i<j){
					tmp=arrays[j];
					arrays[j]=arrays[i];
					arrays[i]=tmp;
					i++;
				}
			while(i<j && arrays[i]<=x){
				i++;}
			if(i<j){
					tmp=arrays[j];
					arrays[j]=arrays[i];
					arrays[i]=tmp;
					j--;
				}
				
			}
		
	
		return i;
	}


	public static int[] quick_sort(int[] arrays,int p,int q){
		if(p<q){
			int r=partition(arrays,p,q);
			//System.out.println(r+Arrays.toString(arrays));
			quick_sort(arrays,p,r-1);
			quick_sort(arrays,r+1,q);	
		
		}
		return arrays;
	}
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Java:冒泡排序
ricardohn
粉丝 1
博文 76
码字总数 30236
作品 0
成都
私信 提问
算法设计:两种快速排序代码实现

快速排序是一种高效且使用广泛的排序算法,在很多语言的标准库中自带的排序都是快速排序,所以我们也有必要了解快排的原理以及其实现方法。 快排的大致思想 快速排序实现的重点在于数组的拆分...

Sunrise_1018
2018/11/23
0
0
jna调用dll问题

我用java调用c++的函数,函数中用到了一个双指针作为参数,我应该怎么样传入一个双指针的变量,java中没有指针的概念

墨缘
2017/03/13
149
2
在Java中调用C/C++本地库

} include <jni.h> / Header for class Sample1 / ifndef IncludedSample1 define IncludedSample1 ifdef cplusplus extern "C" { endif /* Class: Sample1 Method: intMethod Signature: (I......

刘学炜
2012/07/12
0
0
可视化的数据结构和算法

还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下...

戴威
2011/05/12
962
5
面试 11:玩转 Java 归并排序

面试 11:Java 玩转归并排序 前面讲了冒泡、选择、插入三种简单排序,时间复杂度都是 O(n²),今天,我们终于迎来了更高级的排序:归并排序。 虽然在这之前还有希尔排序和堆排序,但由于时间...

nanchen2251
2018/07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Git代码防丢指南

我们在日常使用Git的过程中经常会发生一些意外情况,如果处理不当,则可能会出现代码丢失的假象。本文将针对IDEA&Git日常开发中的一些场景,为你层层拨开迷雾,解析常见的错误及其发生原因,...

joymufeng
7分钟前
0
0
传统IDC部署网站(三)

16. chown命令 chown 用来更改一个文件或者目录的所有者护着所属组 -R 级联更改一个目录下所有的目录和文件 chown user1:users 1.txtchown user1.users 1.tx useradd 添加用户的命令 user...

miko0089
17分钟前
0
0
来玩一下Java设计模式之命令模式

wiki上的描述 Encapsulate a request as an object, thereby allowing for the parameterization of clients with different requests, and the queuing or logging of requests. It also al......

小刀爱编程
19分钟前
0
0
Optional类的简单了解

import java.util.Optional;/** * @author hanliwei */public class OptionalTest { /** * Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返...

wind2012
27分钟前
0
0
如何写出好的单元测试?

大家都知道,开发软件的时候为代码编写单元测试是很好的。但实际上,光有测试还不够,还要编写好的测试,这同样重要。 要做到这一点,考虑遵循一些固执的原则,对测试代码给予一些关爱: 1....

程序猿拿Q
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部