java快速排序
来源:互联网 发布:杭州java培训哪家好 编辑:程序博客网 时间:2024/05/16 00:27
package com.datastructor;
public class FastSorted {
/**
* @param args
* 快速排序
*/
public static void main(String[] args) {
int[] array={23,34,45,56,78,12,16,17};
recQuickSort(0,array.length-1,array);
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
public static void recQuickSort(int left,int right,int [] array){
if(right-left<=0)
return;
else{
int pivot=array[right];
int partition=partitionIt(left,right,pivot,array);
recQuickSort(left,partition-1,array);
recQuickSort(partition+1,right,array);
}
}
private static int partitionIt(int left, int right, int pivot,int[] array) {
int leftPtr=left-1;
int rightPtr=right;
while(true){
while(array[++leftPtr]<pivot){
};
while(rightPtr>0 && array[--rightPtr]>pivot){
};
if(leftPtr>=rightPtr)
break;
else{
swap(leftPtr,rightPtr,array);
}
}
swap(leftPtr,right,array);
return leftPtr;
}
private static void swap(int leftPtr, int rightPtr, int[] array) {
int temp=array[leftPtr];
array[leftPtr]=array[rightPtr];
array[rightPtr]=temp;
}
}
public class FastSorted {
/**
* @param args
* 快速排序
*/
public static void main(String[] args) {
int[] array={23,34,45,56,78,12,16,17};
recQuickSort(0,array.length-1,array);
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
public static void recQuickSort(int left,int right,int [] array){
if(right-left<=0)
return;
else{
int pivot=array[right];
int partition=partitionIt(left,right,pivot,array);
recQuickSort(left,partition-1,array);
recQuickSort(partition+1,right,array);
}
}
private static int partitionIt(int left, int right, int pivot,int[] array) {
int leftPtr=left-1;
int rightPtr=right;
while(true){
while(array[++leftPtr]<pivot){
};
while(rightPtr>0 && array[--rightPtr]>pivot){
};
if(leftPtr>=rightPtr)
break;
else{
swap(leftPtr,rightPtr,array);
}
}
swap(leftPtr,right,array);
return leftPtr;
}
private static void swap(int leftPtr, int rightPtr, int[] array) {
int temp=array[leftPtr];
array[leftPtr]=array[rightPtr];
array[rightPtr]=temp;
}
}
- 排序-快速排序-Java
- java排序之快速排序
- Java排序算法 快速排序
- 快速排序(java排序)
- java 快速排序,冒泡排序
- 算法:排序----Java快速排序
- 【交换排序】快速排序--Java
- java 插入排序+快速排序
- Java 排序之 快速排序
- java排序之快速排序
- Java排序算法:快速排序
- Java排序-快速排序
- Java排序算法:快速排序
- Java排序算法--》快速排序
- JAVA排序算法---快速排序
- Java 快速排序 归并排序
- Java排序算法--快速排序
- java 冒泡排序、快速排序
- 定时检查某个目录下文件脚本
- 关于U盘/优盘在传入大的数据时无法传输问题
- 安装JadClipse插件 - 总结
- 勾选TreeList结点,控制GridView列的显隐
- YII 框架 第八天(3) 提示信息 flash()
- java快速排序
- romfs 文件系统学习
- Web 网页通信之长连接、长轮询
- uint32_t
- 电脑桌面任务栏中已打开的窗口隐藏了解决方法
- java 之 thread
- 访问者模式讨论篇:java的动态绑定与双分派
- 装eclipse前JDK配置及原因
- 百度2014终端类校招笔试、1、2、3面经历总结