快速排序
来源:互联网 发布:益阳长春淘宝客服 编辑:程序博客网 时间:2024/06/07 00:45
快速排序的基本思路就是,把数组分段,对段排序,在整合,有点像归并排序,但是快速排序是原地排序,通常来说,平均运行时间较好。
快速排序的最重要的函数是PARTITION,基本思想就是将某一段排序,有一个中间元素,在该段的最后一个位置上,排序后的结果(一般情况)前半部分小于中间元素,后半部分大于中间元素,当然可能没有前半部分或者后半部分。最后将末尾位置的中间元素移动到合适的位置上。
public class Main {
/**
* @param args
*/
int[] arrays = new int[]{3,4,5,1,2,8};
public void QUICKSORT(int[] A,int p,int r)
{
if(p<r)
{
int q = PARTITION(A, p, r);
QUICKSORT(A, p, q-1);
QUICKSORT(A, q+1, r);
}
}
public int PARTITION(int[] A,int p, int r)
{
int x = A[r];
int i = p - 1;
for(int j=p;j<r;j++)
{
if(A[j]<=x)
{
i++;
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
}
int tmp = A[i+1];
A[i+1] = A[r];
A[r] = tmp;
return i+1;
}
public static void main(String[] args) {
Main main = new Main();
main.QUICKSORT(main.arrays, 0, main.arrays.length-1);
for (int i: main.arrays) {
System.out.println(i+" ");
}
}
}
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- poj 2828 Buy Tickets(树状数组 | 线段树)
- Ganglia:分布式集群系统监控开源工具
- android 自定义曲线图
- Eclipse快捷键总结
- 总结Servlet中文乱码的三大情况
- 快速排序
- VS2013中MFC程序最大化运行遮盖任务栏的解决办法
- C#统计字符个数
- Linux系统 配置ssh无密码登录
- 《Java NIO》学习笔记四 选择器(Selector)
- KMP模式匹配算法(C++)
- 一个modbus协议库移植——libmodbus-master
- 把dmp导入远程数据库中
- 你所不能不知道的Matlab使用技巧