JAVA快速排序
来源:互联网 发布:淘宝网商城玉镯 编辑:程序博客网 时间:2024/05/19 11:39
package com.tangbaoabo.Sort;
public class QuicklySort {
public static void main(String[] args) {
int[] a= {1,5,6,8,10,9,3};
quickSort(a);
for (int i : a) {
System.out.println(i);
}
}
//快速排序方法
public static int[] quickSort(int[] arr){
qsort(arr, 0, arr.length-1);
return arr;
}
private static void qsort(int[] arr, int low, int high){
if (low < high){
int pivot=partition(arr, low, high); //将数组分为两部分
qsort(arr, low, pivot-1); //递归排序左子数组
qsort(arr, pivot+1, high); //递归排序右子数组
}
}
private static int partition(int[] arr, int low, int high){
int pivot = arr[low]; //枢轴记录
while (low<high){
while (low<high && arr[high]>=pivot) {
--high;
}
arr[low]=arr[high]; //交换比枢轴小的记录到左端
while (low<high && arr[low]<=pivot) {
++low;
}
arr[high] = arr[low]; //交换比枢轴小的记录到右端
}
//扫描完成,枢轴到位
arr[low] = pivot;
//返回的是枢轴的位置
return low;
}
}
public class QuicklySort {
public static void main(String[] args) {
int[] a= {1,5,6,8,10,9,3};
quickSort(a);
for (int i : a) {
System.out.println(i);
}
}
//快速排序方法
public static int[] quickSort(int[] arr){
qsort(arr, 0, arr.length-1);
return arr;
}
private static void qsort(int[] arr, int low, int high){
if (low < high){
int pivot=partition(arr, low, high); //将数组分为两部分
qsort(arr, low, pivot-1); //递归排序左子数组
qsort(arr, pivot+1, high); //递归排序右子数组
}
}
private static int partition(int[] arr, int low, int high){
int pivot = arr[low]; //枢轴记录
while (low<high){
while (low<high && arr[high]>=pivot) {
--high;
}
arr[low]=arr[high]; //交换比枢轴小的记录到左端
while (low<high && arr[low]<=pivot) {
++low;
}
arr[high] = arr[low]; //交换比枢轴小的记录到右端
}
//扫描完成,枢轴到位
arr[low] = pivot;
//返回的是枢轴的位置
return low;
}
}
阅读全文
0 0
- 排序-快速排序-Java
- java排序之快速排序
- Java排序算法 快速排序
- 快速排序(java排序)
- java 快速排序,冒泡排序
- 算法:排序----Java快速排序
- 【交换排序】快速排序--Java
- java 插入排序+快速排序
- Java 排序之 快速排序
- java排序之快速排序
- Java排序算法:快速排序
- Java排序-快速排序
- Java排序算法:快速排序
- Java排序算法--》快速排序
- JAVA排序算法---快速排序
- Java 快速排序 归并排序
- Java排序算法--快速排序
- java 冒泡排序、快速排序
- 关于如何使用eclipse开发工具写java代码
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession'
- js刷新页面方法
- 深入HBase架构解析(二)
- 在SQL中存储过程的一般语法是什么
- JAVA快速排序
- java学习系列4(Java 内存区域和GC机制)
- spring boot整合activeMQ,实现ptp和topic两者消息模式
- 论文代发方法步骤
- Word转Excel技巧之WPS另存法
- Jquery+Json+ajax实现异步查询显示数据
- Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 开关--并查集
- Socket编程 (连接,发送消息) (Tcp、Udp) ,这个是同步,跟上一篇差不多
- SQL Server查看视图字段列表