Java快速排序QuickSort(实例)

作者:HankingHu 时间:2021-12-22 21:47:42 

快速排序

----------------------------------------------------------------------

思想

Java快速排序QuickSort(实例)

如上图:每趟快速排序开始时,设置一个key,key=array[low],然后由high向左,找到小于key的值,复制到low位置,然后再由low向右找到大于key的值,复制到high位置,直到low=high结束,

将key的复制到low位置。

上图中第一轮划分后找到32的位置,然后递归的对32左边和右边的进行排序。

代码:


package Sort;
import java.util.Arrays;
public class QuickSort {

public static void main(String[] args) {
 int array[]={32, 12, 7, 78, 23, 45};
 quickSort(array,0,array.length-1);
 System.out.println(Arrays.toString(array));
}
public static void quickSort(int array[],int left,int right)
{
 if(left>=right)
 {
  return ;
 }
 int i=left;
 int j=right;
 int key=array[left];
 while(i<j)
 {
  while(i<j&&array[j]>key)
  {
   j--;
  }
  array[i]=array[j];
  //从后往前找到第一个比key小的数与array[i]交换;
  while(i<j&&array[i]<key)
  {
   i++;
  }
  array[j]=array[i];
  //从前往后找到第一个比key大的数与array[j]交换;
 }
 array[i]=key;
 //一趟快排之后已经将key的位置找到。
 quickSort(array,left,i-1);
 //对key左边的进行排序
 quickSort(array,i+1,right);
 //对key右边的进行排序
}
}

来源:http://blog.csdn.net/u013309870/article/details/68921848

标签:快速排序,QuickSort,Java
0
投稿

猜你喜欢

  • Spring Cache简单介绍和使用大全

    2023-11-25 04:46:46
  • Java Collections.shuffle()方法案例详解

    2023-11-24 15:53:16
  • Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决方法

    2023-07-21 10:51:45
  • Java如何解析html中的内容并存到数据库详解

    2023-11-29 05:08:32
  • 使用C++ Matlab中的lp2lp函数教程详解

    2023-07-13 17:13:12
  • Spring Cache抽象-使用SpEL表达式解析

    2023-08-23 11:46:44
  • Java中关于二叉树层序遍历深入了解

    2023-07-26 07:06:09
  • Java反射概念与使用实例代码

    2022-02-24 23:55:40
  • 基于Mybatis-Plus的CRUD的实现

    2023-09-10 14:38:45
  • Java利用MultipartFile实现上传多份文件的代码

    2023-11-25 11:29:13
  • C++实现俄罗斯方块源码

    2023-06-27 23:49:14
  • IO中flush()函数的使用代码示例

    2023-11-27 03:49:00
  • Spring Security之默认的过滤器链及自定义Filter操作

    2023-11-24 02:48:35
  • SpringMVC @RequestMapping注解详解

    2022-08-08 06:58:14
  • Java 集合概览(小结)

    2023-11-08 02:50:37
  • MyBatis一对多嵌套查询的完整实例

    2023-07-12 02:49:56
  • Java解析调用webservice服务的返回XML串详解

    2023-11-07 02:42:01
  • java设计模式--三种工厂模式详解

    2023-11-29 09:54:06
  • java简易小游戏制作代码

    2023-11-23 19:49:38
  • 深入理解Spring事务原理

    2022-01-18 04:16:39
  • asp之家 软件编程 m.aspxhome.com