package leetcode;

public class Singleton {
public static void sort(int[] array,int low,int high){
int i,j;
int temp;
i = low;
j = high;
if (i>j)
return;
int index = array[0];
while (i<j){
while (array[j]>=index && i<j)
//从后往前比较
j--;
if (i<j){
//如果没有比关键值小的,比较下一个,直到有比关键值小的交换位置,然后又从前往后比较
temp = array[i];
array[i++] = array[j];
array[j] = temp;
}
while (array[i]<index && i<j)
//从前往后比较
i++;
if (i<j){
//如果没有比关键值大的,比较下一个,直到有比关键值大的交换位置
temp = array[i];
array[i] = array[j];
array[j--] = temp;
}
}
sort(array,low,i-1);
sort(array,i+1,high);
}
public static void quickSort(int[] array){
sort(array,0,array.length-1);
}
public static void main(String args[]) {
int array[] = {5,4,9,8,7,6,0,1,3,2};
quickSort(array);
for (int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}

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

  1. java实现快速排序

    package com.wangjj.quicksort; import java.util.Arrays; /** * 快速排序 * @author Administrator * */ publi ...

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

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

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

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

  4. Java中快速排序的实现

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. C++中函数的形式参数引用

    形式参数的传递方式 值传递 值传递是将数值传递到程序中,这种方式传递是单向传递 但是如果想要双向传递,这种视频无法满足: 引用传递 引用传递可以实现双向的传递 为了对比处两个之间的差异,这里举出两个例 ...

  2. image cache service

    image cache service 图床 https://images.weserv.nl/ https://github.com/weserv/images meta & referre ...

  3. Python Lambda & Functional Programming

    Python Lambda & Functional Programming 函数式编程 匿名函数 纯函数 高阶函数 # higher-order functions def apply_tw ...

  4. Kotlin & Android & Swift & Flutter & React Native

    Kotlin & Android https://www.runoob.com/kotlin/kotlin-tutorial.html Swift 5 & iOS 12 https:/ ...

  5. VS Code & terminal & Canvas & DOM

    VS Code & terminal & Canvas & DOM https://code.visualstudio.com/docs/editor/integrated-t ...

  6. go好用的类型转换第三方组件

    Cast介绍 开源地址 https://github.com/spf13/cast Cast是什么? Cast是一个库,以一致和简单的方式在不同的go类型之间转换. Cast提供了简单的函数,可以轻松 ...

  7. django学习-5.获取url参数和name的作用

    1.前言 假如我们要打开这两个博客园地址:[https://www.cnblogs.com/xiamen-momo/archive/2020/11.html].[https://www.cnblogs ...

  8. 08_MySQL数据库的字段约束

    数据库的字段约束 实战: CREATE TABLE t_teacher ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) N ...

  9. Filter理解

    web中Filter通过<init-param>添加参数.web.xml中的配置: <filter> <filter-name>AuthFilter</fil ...

  10. IntelliJ Idea tomcat 控制台输出乱码

    reference: https://blog.csdn.net/dandandeshangni/article/details/485442211. 在运行/调试 配置对话框的Startup/Con ...