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语言)的更多相关文章

  1. 深度实战玩转算法, Java语言7个经典应用诠释算法精髓

    深度实战玩转算法,以Java语言主讲,通过7款经典好玩游戏,真正将算法用于实际开发,由算法大牛ACM亚洲区奖牌获得者liuyubobobo主讲,看得见的算法,带领你进入一个不一样的算法世界,本套课程共 ...

  2. 瘋耔java语言笔记

    一◐ java概述                                                                                        1.1 ...

  3. Java语言与C++语言的差异总结

    Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是 ...

  4. Java语言与JVM中的Lambda表达式全解

    Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法. ...

  5. 《JAVA语言程序设计》上课笔记

    教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一.        问几个问题 1.             你们到这里来干什么 ...

  6. 我们一起来排序——使用Java语言优雅地实现常用排序算法

    破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...

  7. 探索Java语言与JVM中的Lambda表达式

    Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法.( ...

  8. elasticsearch 5.6.4自动创建索引与mapping映射关系 +Java语言

    由于业务上的需求 ,最近在研究elasticsearch的相关知识 ,在网上查略了大部分资料 ,基本上对elasticsearch的数据增删改都没有太大问题 ,这里就不做总结了  .但是,在网上始终没 ...

  9. Java 语言结构【转】

    Java 语言结构 基础:包(Package).类(Class)和对象(Object) 了解 Java 的包(Package).类(Class)和对象(Object)这些基础术语是非常重要的,这部分内 ...

随机推荐

  1. YouTube 视频下载工具

    YouTube 视频下载工具 我不生产视频,只是优秀视频的搬运工! YouTube-dl https://github.com/search?q=youtube-dl https://github.c ...

  2. iframe & sandbox & 微前端

    iframe & sandbox & 微前端 沙箱,容器,隔离 sandbox demo svg progress bar https://stackoverflow.com/ques ...

  3. DevOps in Action

    DevOps in Action DevOps is a set of software development practices that combines software developmen ...

  4. scroll tabs

    scroll tabs https://github.com/NervJS/taro-ui/blob/dev/src/components/tabs/index.tsx https://github. ...

  5. how to recursively all files in a folder with sudo permissions in macOS

    how to recursively all files in a folder with sudo permissions in macOS write bug OK sudo chmod 777 ...

  6. git merge & git rebase

    git merge & git rebase bug error: You have not concluded your merge (MERGE_HEAD exists). hint: P ...

  7. vue & modal props & form data update bug

    vue & modal props & form data update bug OK <div> <BindModal :dialogBindVisible=&qu ...

  8. NGK是公链吗?NGK为何会这么火?

    NGK号称区块链3.0的经典代表之作,公链底层技术开源发布,支撑百万级应用场景,集合了其他公链的优点,不仅拥有超高的TPS,军业级DPOSS共识机制,还有极高的网络确认速度和转账速度.更重要的是无需矿 ...

  9. Linux安装与使用

    1.安装 1.1安装VMware 1.1.1VM12版本安装 1)下载:网盘:链接:https://pan.baidu.com/s/1Jnr--KIy3bSTvRhtB8nfiQ 提取码:czna 2 ...

  10. XSS跨站脚本攻击(1)

    将跨站脚本攻击缩写为XSS,恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面的时候,嵌入其中的Web里面的Script代码就会被执行,从而达到恶意攻击用户的目的. 反射型XSS 反射 ...