排序算法之快速排序
发布日期:2021-11-02 12:35:11 浏览次数:3 分类:技术文章

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

文章目录

排序算法之快速排序

排序过程:

1.首先找出标准数 standard,同常取数组中第一个数字为标准数

2.取两个移动坐标,一个叫低位坐标low 在最左边,另一个叫高位坐标high在最右边。

首先从高位上的数字开始:

循环(低位坐标在高位坐标左边&&右边的数字大于标准数字){

​ 将高位移动坐标向前移动

}

//出现高位上的数字小于标准数字时,将高位上的数字赋值给左边低位上的数字

array[low]array[high];

2.2

循环(低位坐标小于高位坐标&&低位上的数字小于标准数字){

​ 则低位坐标向后移动

}

//当出现低位上的数字大于标准数字,则将低位上的数字赋值给高位上

array[low]=array[high];

//此时会出现低位移动坐标与高位坐标重合,此时将标准数字赋值给这里

array[high]=standard;

3.经过第二步骤之后,会出现小于标准数的在标准数左边,大于标准数的在标准数右边,

再次分别采用递归的方法,处理左右两边的数字。

quickSort(arr,start,low);

quickSort(arr,low+1,end);

4.最后就排好序了。

代码实现
import java.util.Arrays;public class QuickSort{
public static void main(String[] args){
int[] array=new int[]{
3,2,5,9,2,5,7,23}; quickSort(array,0,array.length-1); System.out.println(Arrays.toString(array)); } public static void quickSort(int[] arr,int start,int end){
//当起始位置小于最后位置时,才循环。--这只是一个防止后面无限循环的方法。 if(start

代码结果:

1。没采用递归时。(标准数时3,小于3的都在左边,大于3的都在右边)

在这里插入图片描述

2.采用递归处理 标准数前后的 数字

在这里插入图片描述

转载地址:https://blog.csdn.net/weixin_43919632/article/details/90668803 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:排序算法之插入排序
下一篇:递归实例--汉诺塔问题

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月07日 16时06分43秒