java快速排序
2013-11-22 15:04
253 查看
O(nlog(n)时间和O(logn)的栈空间
package contcurrentandalgorithm;
/**
*
* @author Administrator
* zyyjiao@mail.ustc.edu.cn
*/
public class QSort {
public static void main(String[] args) {
int a[] = {3, 4, 2, 1, 6, 5, 7, 8};
qSort(a, 0, 7);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
public static void qSort(int a[], int left, int right) {
int i = left;
int j = right;
int temp = a[i];
if (left >= right) {
return;
}
while (i < j) {
while (i < j && temp < a[j]) {
j--;
}
a[i] = a[j];
while (i < j && temp > a[i]) {
i++;
}
a[j] = a[i];
}
a[i] = temp;
qSort(a, left, j - 1);
qSort(a, j + 1, right);
}
}
package contcurrentandalgorithm;
/**
*
* @author Administrator
* zyyjiao@mail.ustc.edu.cn
*/
public class QSort {
public static void main(String[] args) {
int a[] = {3, 4, 2, 1, 6, 5, 7, 8};
qSort(a, 0, 7);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
public static void qSort(int a[], int left, int right) {
int i = left;
int j = right;
int temp = a[i];
if (left >= right) {
return;
}
while (i < j) {
while (i < j && temp < a[j]) {
j--;
}
a[i] = a[j];
while (i < j && temp > a[i]) {
i++;
}
a[j] = a[i];
}
a[i] = temp;
qSort(a, left, j - 1);
qSort(a, j + 1, right);
}
}
相关文章推荐
- 排序算法原理及其Java代码(快速排序、冒泡排序、直接插入排序、简单选择排序)
- 快速排序 -- java实现
- java排序算法1 快速排序
- 快速排序 (QuickSort) Java数据结构与算法
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 快速排序java实现
- Java实现排序算法——快速排序
- 排序算法之快速排序--Java语言
- java版快速排序
- 【排序系列】快速排序java实现
- [java]排序分类--及选择排序、插入排序、冒泡排序、快速排序的解释图和代码
- 排序算法【java实现】(三)快速排序
- 快速排序java实现
- java简单实现冒泡 快速 选择排序
- Java实现快速排序
- 快速排序之划分(java)
- JavaScript 、Python Java、Go算法系列之【快速排序】篇
- java 快速排序 算法
- JAVA 快速排序
- 回归基础系列-快速排序[JAVA]