划分
是快速排序的根本机制。
原理-把数组分为两组,使所有的值大于特定值的数据项的在一组,所有小于特定值的在一组。
SortUtils.java 主要完成换位和打印任务,在之后的简单排序中都会用此工具类
|
|
Partition.java 具体实现
|
|
输出:1 4 33 3 5 2 33 0 2 1 87 44 332 55 45 222
说明
- 1.这里把leftPar变为小于0,rightPar变为大于总长度的原因是为了在位置3和位置4那里做++和- -操作
- 2.一直执行到最左索引和最右端索引重合或者大于最右端索引
- 3.左索引小于最大索引并且值小于特定值时一直向右比较大小
- 4.右索引大于数组最小索引并且大于特定值时一直向左比较大小
- 5.两端索引重合或者左大于右时跳出循环
- 6.交换位置
注:该内容为Java数据结构和算法读后学习感悟