博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习——排序算法之快速排序
阅读量:3941 次
发布时间:2019-05-24

本文共 951 字,大约阅读时间需要 3 分钟。

Java学习——排序算法之快速排序

  • 什么是快速排序?

快速排序(Quicksort)是对冒泡排序的一种改进。

它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

  • 快速排序原理

快速排序的原理其实就是挖坑填数,步骤为:

1.先找一个数为基准数,作为第一个坑
2.从后往前找比这个数小的数,找到后挖出此数,填到前面一个坑中
3.从前往后找比这个数大或者等于的数,找到后挖出此数,填到前面一个坑中
4.重复第2、3步即可
我们看下面过程:
在这里插入图片描述
在这里插入图片描述

  • 代码实现

import java.util.Arrays;public class Test5 {
/** * 快速排序 */ public static void main(String[] args) {
//定义一个int类型的数组 int[] arr = {
5,6,8,4,3,9}; //定义这个数组的开始索引、结束索引 int startIndex = 0; int endIndex = arr.length-1; //定义一个快速排序的方法,将这个数组与数组的开始、结束索引传入 quickSort(arr,startIndex,endIndex); //打印排序好的数组 System.out.println(Arrays.toString(arr)); } //实现排序 private static void quickSort(int[] arr, int startIndex, int endIndex) {
//判断索引是否相遇,如果相遇则结束递归 if (startIndex
x){
i++; } //填坑 if (i

转载地址:http://oxiwi.baihongyu.com/

你可能感兴趣的文章
python-全角转半角
查看>>
Python pass语句作用与用法
查看>>
Java double,float设置小数点位数
查看>>
PyCharm & Jupyter
查看>>
为什么要用Jupyter Notebook
查看>>
sklearn中的LogisticRegression模型
查看>>
pandas.get_dummies 的用法
查看>>
机器学习-训练模型的保存与恢复(sklearn)
查看>>
Spark(二): spark-submit命令详解
查看>>
细品 - 逻辑回归(LR)*
查看>>
hive: size与spilt连用
查看>>
Python:ModuleNotFoundError: No module named 模块名 错误及解决方案
查看>>
Python中os与sys两模块的区别
查看>>
nohup详解
查看>>
idea .gitignore对.idea不起作用解决
查看>>
深度学习中的注意力机制(2017版)-易理解
查看>>
Transformer解析-易理解
查看>>
多维数组[:,0]和[:0:1]获取的区别
查看>>
复原Ip地址
查看>>
重建二叉树
查看>>