java实现快速排序
2015-08-12 15:57
686 查看
java实现快速排序:
[java] view
plaincopy
public class QuickSort {
public static void sort(int [] array , int left ,int right)
{
int i,j,tValue,bValue ;
if(left>right)
{
return ;
}
i=left;
j=right;
//基数
bValue=array[left];
while (i!=j) {
//先从右侧--移动,右侧放置大于基数的元素
while (array[j]>=bValue&&i<j) {
j--;
}
//左侧++移动,左侧放置小于基数的元素
while(array[i]<=bValue&&i<j)
{
i++;
}
if(i<j)
{
tValue=array[i];
array[i]=array[j];
array[j]=tValue;
}
}
//当i和j移动到相同位置时,交换基数
array[left]=array[i];
array[i]=bValue;
//递归执行
sort(array,left,i-1);
sort(array,i+1,right);
}
public static void main(String[] args) {
int a[] ={6,1,2,7,9,3,4,5,10,8};
sort(a,0,a.length-1);
for(int v: a){
System.err.print(v+" ");
}
}
}
输出结果:
1 2 3 4 5 6 7 8 9 10
[java] view
plaincopy
public class QuickSort {
public static void sort(int [] array , int left ,int right)
{
int i,j,tValue,bValue ;
if(left>right)
{
return ;
}
i=left;
j=right;
//基数
bValue=array[left];
while (i!=j) {
//先从右侧--移动,右侧放置大于基数的元素
while (array[j]>=bValue&&i<j) {
j--;
}
//左侧++移动,左侧放置小于基数的元素
while(array[i]<=bValue&&i<j)
{
i++;
}
if(i<j)
{
tValue=array[i];
array[i]=array[j];
array[j]=tValue;
}
}
//当i和j移动到相同位置时,交换基数
array[left]=array[i];
array[i]=bValue;
//递归执行
sort(array,left,i-1);
sort(array,i+1,right);
}
public static void main(String[] args) {
int a[] ={6,1,2,7,9,3,4,5,10,8};
sort(a,0,a.length-1);
for(int v: a){
System.err.print(v+" ");
}
}
}
输出结果:
1 2 3 4 5 6 7 8 9 10
相关文章推荐
- 常见排序算法(java实现)
- Java总结——反射专题
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
- selenim java判断图片有没有加载完成
- Mac OS 下 eclipse中文乱码解决方法
- Javadoc导出java类的文档结构小结
- 简单实现类似Spring的在任意代码中获取Request的功能
- java反射,获得Class是否为基本数据类型,是否其他类的父类。获得泛型。
- java中数组用法
- spring aop(一)
- Eclipse导入外部项目问题总结
- javafx tabPane
- 【leetcode】Valid Anagram 【java】
- 好用的eclipse properties插件
- 【JDK配置原创】JDK(JRE)环境变量配置原理 --费元星
- 【Java】Java代码经典错误清单
- JAVA 垃圾回收机制
- Dealing with “java.lang.OutOfMemoryError: PermGen space” error
- spring4入门
- Spring Hessian整合 404 问题