java实现快速排序
2012-05-11 14:26
405 查看
View Code
package com.test.suanfa; public class QuickSoft { private void swap(int a[], int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } private int partition(int a[], int p, int r) { int point = a[r]; // 将小于等于point的元素移到左边区域 // 将大于point的元素移到右边区域 int index = p; for (int i = index; i < r; ++i) { if (a[i] - point <= 0) { swap(a, index++, i); System.out.println(" 交换之后分组为~~~~~~~~~~~"+i+"~~~~~~~~~~~~~~~~~"); for (int j = 0; j < a.length; j++) { System.out.print(a[j]+" "); } System.out.println(); //System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~"); } } swap(a, index, r); return index; } public void qsort(int a[], int p, int r) { if (p < r) { // 确定拆分点,并对数组元素进行移动 // 这是快速排序算法的关键步骤 int q = partition(a, p, r); // 对左半段排序 qsort(a, p, q - 1); // 对右半段排序 qsort(a, q + 1, r); } } public static void main(String[] args) { // 声明一个类 QuickSoft ms = new QuickSoft(); int len = 10; int a[]={5,1,2,9,3,0,8,4,7,6}; // 初始化a数组 ms.partition(a, 0, len - 1); for (int i = 0; i < a.length; i++) { System.out.print(a[i]+" "); } System.out.println(); System.out.println("---------------------"); // 快速排序 ms.qsort(a, 0, len - 1); System.out.println("排序后的数组如下:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i]+" "); } } }
相关文章推荐
- Java 实现的快速排序
- Java实现快速排序
- Java实现快速排序
- java实现快速排序
- Java实现快速排序
- 快速排序及其java实现代码
- 数据算法之快速排序(quickSort)的Java实现
- 快速排序-java实现
- 必须知道的八大种排序算法【java实现】(一) 冒泡排序、快速排序
- 快速排序的深入详解以及java实现
- Scala&Java实现快速排序
- java非递归方式实现快速排序
- [置顶] 分治法之快速排序 (java实现)
- java 冒泡排序和快速排序 实现
- JAVA实现快速排序
- Java 冒泡排序与快速排序的实现
- 快速排序及Java实现
- 4000 快速排序 java实现
- 快速排序_java实现
- Java 冒泡排序与快速排序的实现