快速排序算法的Java实现
2012-09-10 22:44
357 查看
package com.suifeng.sort; public class QuickSort { public static void main(String[] args) { int[] nums = { 49, 38, 65, 97, 76, 13, 27 }; System.out.println("=============排序前============="); //显示排序后的数组 for (int i = 0; i < nums.length; ++i) { System.out.print(nums[i] + ","); } System.out.println(); //应用快速排序方法 sort(nums, 0, nums.length - 1); System.out.println("=============排序前============="); //显示排序后的数组 for (int i = 0; i < nums.length; ++i) { System.out.print(nums[i] + ","); } System.out.println(""); } public static void sort(int[] arr, int low, int high) { int lo = low; int hi = high; if(low >= high) { return; } // 默认从后往前数 boolean flag = true; while(low < high) { // 碰到后边比关键码大的值,交换该值与关键码的位置 if(arr[low] > arr[high]) { int temp = arr[low]; arr[low] = arr[high]; arr[high] = temp; // 重置下标移动方向 flag = !flag; } if(flag) { // 关键码在arr[low]处 high--; } else { // 关键码在arr[high] low++; } } high++; low--; sort(arr,lo,low); sort(arr,high,hi); } }
执行结果:
=============排序前=============
49,38,65,97,76,13,27,
=============排序后=============
13,27,38,49,65,76,97,
算法的解释来自于http://www.cnblogs.com/yanzi629/archive/2010/11/20/1882863.html,源码部分也参考里边实例代码的是是实现
相关文章推荐
- 一个简单的冒泡排序和快速排序算法java实现
- Java实现快速排序算法
- 快速排序算法和冒泡排序算法的java实现
- 快速排序算法java实现
- Java实现的快速排序算法
- java 快速排序算法--归并排序的实现
- 快速排序算法原理及java递归实现
- [Java]快速排序算法的Java实现
- [LeetCode][15]3Sum解析与快速排序算法-Java实现
- Java实现数组的快速排序(快速排序算法)
- 快速排序算法原理及java实现
- 快速排序算法原理及java递归实现
- Java实现快速排序算法
- 快速排序算法在Java中的实现
- 数据结构与算法-快速排序算法(java实现)
- 冒泡、选择、快速排序算法(附java实现源码)
- 快速排序算法(java实现)
- java实现快速排序算法
- java实现的快速排序算法
- Java编程中快速排序算法的实现及相关算法优化