博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序
阅读量:4704 次
发布时间:2019-06-10

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

快速排序

0

1

2

3

4

  

20

16

5

40

22

1.把低位设置为基准数

基准数20

  

  

  

  

循环执行条件是低位小于高位,低位为0,高位为4

20

16

5

40

22

从高位往低位找,若找到比基准数小的数,值赋给低位

20

16

5

40

22

  

20

16

5

40

22

  

5

16

5

40

22

交换完成后从低位开始找,若找到比基准数大的值,值赋给高位

5

16

5

40

22

  

5

16

5

40

22

此时低位等于高位,结束循环,此时低位指向数组的2下标

5

16

20

40

22

把基准数给低位

基准数5

  

  

  

  

  

5

16

20

40

22

递归调用自己,从数组起始位的位置到低位下标结束,执行条件还是低位小于高位,从高位往低位找,若找到比基准数小的数,值赋给低位

5

16

20

40

22

  

5

16

20

40

22

此时低位等于高位,结束循环,此时低位指向数组的0下标

5

16

20

40

22

把基准数给低位

基准数16

  

  

  

  

  

5

16

20

40

22

递归调用自己,从数组低位+1的位置到高位下标结束,执行条件是低位小于高位,从高位往低位找,若找到比基准数小的数,值赋给低位

5

16

20

40

22

  

5

16

20

40

22

  

5

16

20

40

22

此时低位等于高位,结束循环,此时低位指向数组的1下标

5

16

20

40

22

把基准数给低位

  

  

  

  

  

  

基准数20

  

  

  

  

  

5

16

20

40

22

递归调用自己,从数组低位+1的位置到高位下标结束,执行条件是低位小于高位,从高位往低位找,若找到比基准数小的数,值赋给低位

5

16

20

40

22

  

5

16

20

40

22

此时低位等于高位,结束循环,此时低位指向数组的2下标

5

16

20

40

22

把基准数给低位

基准数40

  

  

  

  

  

5

16

20

40

22

递归调用自己,从数组低位+1的位置到高位下标结束,执行条件是低位小于高位,从高位往低位找,若找到比基准数小的数,值赋给低位

5

16

20

22

22

  

5

16

20

22

22

此时低位等于高位,结束循环,此时低位指向数组的4下标

5

16

20

22

40

把基准数给低位

   

public static void main(String args[]) {

int[] arr = { 20, 16, 5, 40, 22 };

sortA(arr, 0, arr.length - 1);

for (int i : arr) {

System.out.print(i + ",");

}

}

   

public static void sortA(int[] array, int low, int high) {

if (low < high) {

int lowIndex = low;

int higIndex = high;

int num = array[lowIndex];

while (lowIndex < higIndex) {

while (lowIndex < higIndex && array[higIndex] >= num) {

higIndex--;

}

if (lowIndex < higIndex) {

array[lowIndex] = array[higIndex];

}

while (lowIndex < higIndex && array[lowIndex] <= num) {

lowIndex++;

}

if (lowIndex < higIndex) {

array[higIndex] = array[lowIndex];

}

}

array[lowIndex] = num;

System.out.println(lowIndex);

sortA(array, low, lowIndex - 1);

sortA(array, lowIndex + 1, high);

}

}

   

转载于:https://www.cnblogs.com/DogEgg/p/6723201.html

你可能感兴趣的文章
在Linux自己Home下安装python
查看>>
SceneGrabber NET 视频批量自动截图软件使用技巧
查看>>
Codeforces985E. Pencils and Boxes (单调队列)
查看>>
python 打印进度条
查看>>
Art Pipeline for glTF
查看>>
Spring Boot配置
查看>>
芒果云 在线代码编辑器
查看>>
《从零开始学Swift》学习笔记(Day 16)——字典集合
查看>>
NOIP2012Day2 T1/T2题解
查看>>
hdu 2689
查看>>
C#和Unity总结Day01
查看>>
SQLAlchemy中解决数据库访问时出现的Incorrect string value: xxx at row 484
查看>>
5238-整数校验器-洛谷3月赛gg祭
查看>>
IOS 给按钮添加图片
查看>>
适合移动应用的日期时间拾取器
查看>>
【转载】很多女人都希望自己像薛之荔。但每个人心里都有一面是赵雯。
查看>>
JS设计模式(10)职责链模式(重要)
查看>>
三表查询、用到子查询,
查看>>
luogu P1726 上白泽慧音
查看>>
简单登录实例Login
查看>>