文档章节

Java:快速排序(单指针)

ricardohn
 ricardohn
发布于 2016/05/13 09:59
字数 147
阅读 30
收藏 4

import java.util.Arrays;
import java.util.Scanner;

public class Quick_Sort {
	private static Scanner s;
	static int tmp;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] scores = new int[10];
		s = new Scanner(System.in);
		for (int i=0;i<scores.length;i++){
			scores[i] = s.nextInt();
		}
		System.out.println(partition(scores,0,scores.length));
		System.out.println(Arrays.toString(quick_sort(scores,0,scores.length)));
	}
	public static int partition(int[] arrays,int p,int q){
		int x=arrays[p];
		int i=p;
		int tmp;
		for(int j=p+1;j<q;j++){
			if (arrays[j]<=x){
				i+=1;
				tmp=arrays[j];
				arrays[j]=arrays[i];
				arrays[i]=tmp;
				}
			}
		
		tmp=arrays[i];
		arrays[i]=x;
		arrays[p]=tmp;
		return i;
	}
	public static int[] quick_sort(int[] arrays,int p,int q){
		if(p<q){
			int r=partition(arrays,p,q);
			quick_sort(arrays,p,r-1);
			quick_sort(arrays,r+1,q);	
		
		}
		return arrays;
	}
}

 

© 著作权归作者所有

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

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

Sunrise_1018
2018/11/23
0
0
面试 11:玩转 Java 归并排序

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

nanchen2251
2018/07/18
0
0
单线程排序和利用Fork/Join进行多线程并行排序的简单对比

Fork/Join框架自从在JDK7中引进之后,对并行计算的设计带来了更多便利。 本文使用java原生的排序方法Array.sort单线程排序,和利用Fork/Join框架进行任务分割设计的快速排序进行对比。 首先,...

Nox
2015/08/10
0
0
多态在 Java 和 C++ 编程语言中的实现比较

众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对...

Jerikc
2013/12/03
0
1
JDK 11 将引入低延迟 GC,大幅度缩短 GC 暂停时长

之前我们报导过 JDK 11 进入特性冻结阶段,今天来看看 JEP 333 为了大幅减少 GC 暂停时间的可伸缩低延迟垃圾回收器 ZGC(Scalable Low-Latency Garbage Collector )。 GC 一直以来是 Java 的...

h4cd
2018/07/10
5.1K
19

没有更多内容

加载失败,请刷新页面

加载更多

深度学习为图片人物换装【python代码教程】

在观看本文之前,请答应我要善良。昨天预告了下,发现很多同学对这个模型都表示出兴趣,甚至有好多同学后台发来照片让我帮他们脱裤子。授人以鱼不如授人以渔,请这些同学好自为之~ 01效果演示...

阿里云官方博客
23分钟前
2
0
centos7安装RabbitMQ详细过程

由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang 1、环境: centos 7.1 内核版本3.10.0-229.el7.x86_64 Erlang 19.0.4版本 RabbitMQ 3.6.14版本 2、在线安装E...

秋至丶枫以落
54分钟前
1
0
6个使用KeePassX保护密码的技巧

虽然安全是个深奥的主题,但是你可以遵循几个简单的日常习惯来减小攻击面。本文将解释确保密码信息安全的重要性,并给出如何充分利用KeePassX的建议。 日益互联的数字世界使安全成为一个重要...

Linux就该这么学
55分钟前
1
0
UnsatisfiedLinkError sawindbg.dll

方法:搜索sawindbg.dll,然后将文件报错的目录下

洛水
今天
5
0
说说不知道的Golang中参数传递

本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中...

腾讯云加社区
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部