快速排序JAVA实现
2010-11-04 17:25
274 查看
package com.wen.util; /** * @author jack0511 * */ public class QuickSort { int num = 0; public void sort(int[] array, int i, int j) throws Exception { num++; System.out.println("一趟排序开始"); int beginIndex = i; int endIndex = j; System.out.println("BeingIndex EndIndex:" + beginIndex + " " + endIndex); if (array == null || array.length == 0) { throw new Exception("Error Argument"); } printArray(array); int key = array[i];//哨兵位 System.out.println("KEY:" + key); int temp = 0; for (; i != j;) { System.out.println("i j开始位置:" + i + " " + j); for (; j > i; j--) { if (array[j] < key) { temp = array[j]; array[j] = array[i]; array[i] = temp; break; } } for (; i < j; i++) { if (array[i] > key) { temp = array[i]; array[i] = array[j]; array[j] = temp; break; } } System.out.println("i j结束位置:" + i + " " + j); printArray(array); } System.out.println("一趟排序结束"); if (i != beginIndex) { this.sort(array, beginIndex, i - 1); } if (j != endIndex) { this.sort(array, j + 1, endIndex); } } public static void printArray(int[] array) { for (int e : array) { System.out.print(e); System.out.print(" "); } System.out.println(); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub QuickSort qs = new QuickSort(); int[] array = new int[] { 6, 3, 5, 23, 2, 7, 9, 10, 20, 88, 26, 12, 13, 1, 11 }; try { qs.sort(array, 0, array.length - 1); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("递归次数:" + qs.num); } }
相关文章推荐
- java实现快速排序
- 快速排序的java实现
- Java程序员从笨鸟到菜鸟(二)Java实现冒泡排序、快速排序、插入排序、选择排序等基本排序方式
- 快速排序的JAVA实现和性能分析
- Java 递归与非递归实现快速排序
- java实现快速排序
- 快速排序java实现
- Java简单实现快速排序
- 【编程练习】快速排序,Java和Python实现
- 快速排序的基本思想及Java实现
- 快速排序Java实现
- [算法入门]快速排序非递归方法(Java实现),大家一起来找茬啊~
- 快速排序的超简单实现(Java)
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 【数据结构】-快速排序Java实现
- 快速排序与堆排序的Java实现(泛型)
- Java实现排序算法——快速排序
- 快速排序java实现
- 快速排序的Java实现
- 必须知道的八大种排序算法【java实现】(一) 冒泡排序、快速排序