/**
* @项目名称 :test
* @文件名称 :QuickSort.java
* @所在包 :
* @功能描述 :
* 快速排序Java实现
* @创建者 :云守护 542335496@qq.com
* @创建日期 :Nov 14, 2012
* @修改记录 :
*/
public class QuickSort {
/** 主方法 */
public static void main(String[] args) {
// 声明数组
int[] nums = { 27, 8, 57, 9, 23, 41, 65, 19, 0, 1, 2, 4, 5 };
// 应用快速排序方法
quickSort(nums, 0, nums.length - 1);
// 显示排序后的数组
for (int i = 0; i < nums.length; ++i) {
System.out.print(nums[i] + ",");
}
System.out.println();
}
/** 快速排序方法 */
public static void quickSort(int[] a, int lo0, int hi0) {
int lo = lo0; // 相当于i,左
int hi = hi0; // 相当于j, 右
if (lo >= hi) // 判断是否到中间了
return;
// 确定指针方向的逻辑变量,也就是从左搜索还是向右搜索
boolean transfer = true;
while (lo != hi) {
if (a[lo] > a[hi]) {
// 交换数字
int temp = a[lo];
a[lo] = a[hi];
a[hi] = temp;
// 决定下标移动,还是上标移动
transfer = (transfer == true) ? false : true;
}
// 将指针向前或者向后移动
if (transfer)
hi--;
else
lo++;
}
// 将数组分开两半,确定每个数字的正确位置
lo--;
hi++;
quickSort(a, lo0, lo);
quickSort(a, hi, hi0);
}
}
Java实现快速排序
最新推荐文章于 2023-05-09 11:47:23 发布