P1177【模板】快速排序(JAVA语言)
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main{
static Scanner in=new Scanner(System.in);
static int n=in.nextInt();
static long[] a=new long[n+5];
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=0,j=n-1;
for(int t=0;t<n;t++){
a[t]=in.nextInt();
}
// daluan();
// QuickSort(i,j);
sort(i,j);
for(int t=0;t<n;t++){
System.out.print(a[t]+" ");
}
}
private static void daluan() {
// TODO Auto-generated method stub
List<Integer> lst = new ArrayList<Integer>();
for(int i=0;i<n;i++){
lst.add(Integer.valueOf(String.valueOf(a[i])));
}
// System.out.println(lst);
Collections.shuffle(lst);
for(int i=0;i<n;i++){
a[i]=lst.get(i);
}
}
private static void QuickSort(int start,int end) //start为待排序起点,end为待排序终点
{
if(start>=end)return;//如果待排序只有一个元素,直接return
int i=start;
int j=end;
long k=a[start];
while(i<j)
{
while(a[j]>=k&&i<j)
{
j--;
}
swap(i,j);
k=a[j];
while(a[i]<=k&&i<j)
{
i++;
}
swap(i,j);
k=a[i];
}
QuickSort(start,i-1);
QuickSort(j+1,end);
}
static void sort(int left,int right){
int l=left;
int r=right;
long pivot=a[(left+right)/2];//找中间值
long temp=0;
while(l<r){
while(a[l]<pivot) l++;
while(a[r]>pivot) r--;
if(l>=r) break;
temp=a[l];
a[l]=a[r];
a[r]=temp;
if(a[l]==pivot) --r;
if(a[r]==pivot) ++l;
}
if(l==r){
l++;
r--;
}
if(left<r) sort(left,r);
if(right>l) sort(l,right);
}
private static void swap(int i, int j) {
long t=a[i];
a[i]=a[j];
a[j]=t;
}
}
P1177【模板】快速排序(JAVA语言)的更多相关文章
- 深度实战玩转算法, Java语言7个经典应用诠释算法精髓
深度实战玩转算法,以Java语言主讲,通过7款经典好玩游戏,真正将算法用于实际开发,由算法大牛ACM亚洲区奖牌获得者liuyubobobo主讲,看得见的算法,带领你进入一个不一样的算法世界,本套课程共 ...
- 瘋耔java语言笔记
一◐ java概述 1.1 ...
- Java语言与C++语言的差异总结
Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是 ...
- Java语言与JVM中的Lambda表达式全解
Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法. ...
- 《JAVA语言程序设计》上课笔记
教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一. 问几个问题 1. 你们到这里来干什么 ...
- 我们一起来排序——使用Java语言优雅地实现常用排序算法
破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...
- 探索Java语言与JVM中的Lambda表达式
Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法.( ...
- elasticsearch 5.6.4自动创建索引与mapping映射关系 +Java语言
由于业务上的需求 ,最近在研究elasticsearch的相关知识 ,在网上查略了大部分资料 ,基本上对elasticsearch的数据增删改都没有太大问题 ,这里就不做总结了 .但是,在网上始终没 ...
- Java 语言结构【转】
Java 语言结构 基础:包(Package).类(Class)和对象(Object) 了解 Java 的包(Package).类(Class)和对象(Object)这些基础术语是非常重要的,这部分内 ...
随机推荐
- 基于HSV彩色空间与直方图信息的植物叶脉FFCM算法提取
宣旭峰,王美丽,张建锋. 基于HSV彩色空间与直方图信息的植物叶脉FFCM算法提取[J/OL]. 计算机应用研究,2018,(08):1-7. (2017-07-21)[2017-10-09]. ht ...
- Python errors All In One
Python errors All In One SyntaxError: invalid character in identifier \u200b, ZERO WIDTH SPACE https ...
- Redis in Action : Redis 实战学习笔记
1 1 1 Redis in Action : Redis 实战学习笔记 1 http://redis.io/ https://github.com/antirez/redis https://ww ...
- browser parse CSS style order
browser parse CSS style order 浏览器解析 CSS style 的顺序 从右到左 https://juejin.im/entry/5a123c55f265da432240c ...
- git hooks & pre-commit
git hooks & pre-commit
- VSCode & Node.js & debugger & inspector
VSCode & Node.js & debugger & inspector F5 ws 元信息 (UUID) ws://127.0.0.1:46912/efa91bda-1 ...
- NGK项目好不好?
在谈NGK项目之前,我们不得不提到NGK背后的研发团队,硅谷顶尖技术团队灵石团队.硅谷作为全世界最顶尖的高新技术和科技创新产业区,NGK.IO区块链系统正是在此处诞生. 灵石部门核心成员曾负责过多个P ...
- 为什么说NGK公链的商用落地是可行的?
互联网.大数据以及云计算的发展给人们的生活.工作带来了诸多便利,也让人们一次又一次感叹科技的进步.而NGK公链的诞生,更是让众人称之为传奇.其商用落地可行性,也让人惊叹.那么,为什么说NGK公链的商用 ...
- flask启动常见问题1:sqlalchemy.exc.ArgumentError: Mapper mapped class UserCode->data_system_user_email could not assemble any primary key columns for mapped table 'data_system_user_email'
我的描述:当我编辑好flask以后,ORM映射数据库完成,启动项目时,发生现象: 解决: 看字面的意思是主键导致的错误,于是我查看了data_system_user_email的键参数配置,发现表没有 ...
- Java之HTTP网络编程(一):TCP/SSL网页下载
目录 一.简介:HTTP程序设计 1.HTTP系统设计 2.HTTP客户端工作过程 3.HTTP服务端工作过程 二.基于TCP Socket的HTTP网页下载 三.基于SSL Socket的HTTPS ...