package com.wangjj.quicksort;

 import java.util.Arrays;

 /**
* 快速排序
* @author Administrator
*
*/
public class QuickSort
{
public static void sort(int arr[],int low,int high)
{
int l = low;
int h = high;
int key = arr[low];
//进行一趟快速排序,排序完结果,key左边的都比key小,key右边的都比key大
while(l<h)
{
//数组从右往左进行
for(;l<h;h--)
{
//判断,发现比key小的进行交换,结束循环
if(key>arr[h])
{
//交换
arr[l] = arr[h];
arr[h] = key;
break;
}
}
//数组从左往右进行
for(;l<h;l++)
{
//判断,发现比key大的进行交换,结束循环
if(key<arr[l])
{
//交换
arr[h] = arr[l];
arr[l] = key;
break;
}
}
}
//进行递归,递归结束条件为数组只有一个元素
if(l>low)
{
sort(arr,low,l-1);
}
if(h<high)
{
sort(arr,h+1,high);
}
} public static void main(String[] args)
{
int[] arr ={9,8,7,6,5,4,4,3,2,1};
sort(arr,0,9);
System.out.println(Arrays.toString(arr));
}
} 输出内容:[1, 2, 3, 4, 4, 5, 6, 7, 8, 9]

java实现快速排序的更多相关文章

  1. JAVA排序--[快速排序]

    package com.array; public class Sort_Quick { /* * 项目名称:快速排序 ; * 项目要求:用JAVA对数组进行排序,并运用快速排序算法; * 作者:Se ...

  2. Java 泛型快速排序 以sdut 1196为例

    oj链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1196 Java中,Arrays.so ...

  3. Java中快速排序的实现

    快速排序是对冒泡排序的一种改进.它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要 小,然后再按次方法对这两部分数据分别进行快速排序,整个排 ...

  4. 使用java实现快速排序(挖坑填数法和指针交换法)

    快速排序:通过一趟排序,将数据分为两部分,其中一部分中的所有数据比另外一部分的所有数据要小,然后按照此方法,分别对这两部分进行排序,达到最终的排序结果. 每趟排序选取基准元素,比该基准元素大的数据放在 ...

  5. 【Java】快速排序的非递归实现

    快速排序一般采用递归方法(详见快速排序及其优化),但递归方法一般都可以用循环代替.本文实现了java版的非递归快速排序. 更多:数据结构与算法合集 思路分析 采用非递归的方法,首先要想到栈的使用,通过 ...

  6. java实现快速排序,归并排序

    //1.快速排序 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc ...

  7. 快速排序基本思想,递归写法,python和java编写快速排序

    1.基本思想 快速排序有很多种编写方法,递归和分递归,分而治之法属于非递归,比递归简单多了.在这不使用代码演示.下面我们来探讨一下快速排序的递归写法思想吧. 设要排序的数组是A[0]……A[N-1], ...

  8. 排序算法-Java实现快速排序算法

  9. java中快速排序的理解以及实例

    所谓的快速排序的思想就是,首先把数组的第一个数拿出来做为一个key,在前后分别设置一个i,j做为标识,然后拿这个key对这个数组从后面往前遍历,及j--,直到找到第一个小于这个key的那个数,然后交换 ...

随机推荐

  1. PAT 1046. 划拳(15)

    划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒.两人同赢或两人同输 ...

  2. Java GC系列

    一个国外站点的Java JVM调优系列 下面是国内站点翻译的 http://www.importnew.com/1993.html

  3. 转 jQuery 中bind(),live(),delegate(),on() 区别

    当我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的.而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 准备知识: 当我们在开始的时候,有些知识是必须具备的: D ...

  4. React反模式 —— 如何不使用JSX地动态显示组件

    欢迎指导与讨论 : ) 前言 文章的最后能写出以 Modal.open( ) 这种调用形式,动态显示React对话框组件的写法(类似于ant design),同时涉及数据交互(数据能异步地返回给调用者 ...

  5. [LeetCode] Power of Four 判断4的次方数

    Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example: Gi ...

  6. .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0

    终于将“.NET跨平台之旅”的示例站点 about.cnblogs.com 从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0 ,经历了不少周折,在这篇博文中记录一下. 从 AS ...

  7. GreenDao的使用

    1.生成代码文件

  8. What's Security

    研究安全应该时常问自己这个问题,什么是安全,什么是安全,什么是安全,安全的本质是什么,只有理解了安全的本质,才能成功的设计一个安全方案. 现在的感觉是没有绝对的安全,所谓的'安全'其实都只不过是增加攻 ...

  9. 递推 hdu 1330

    http://www.cnblogs.com/rainydays/archive/2013/01/16/2862235.html 看样例的答案 #include<stdio.h> #inc ...

  10. NBUT 1457 莫队算法 离散化

    Sona Time Limit:5000MS     Memory Limit:65535KB     64bit IO Format: Submit Status Practice NBUT 145 ...