java快排

原创 2016年08月31日 16:00:41

今天看到别人的快排居然还要位置交换,感觉那就是错误的嘛,算了还是自己写一个如下:

package quicksort;


import java.util.Random;


public class Qsourt {
int count=0;


public static void main(String[] args) {
// TODO Auto-generated method stub
int []array={34,3,53,2,23,7,14,10};
int first=0,end=array.length-1;
Qsourt q=new Qsourt();
q.QuickSort(array, first,end);

}
public void QuickSort(int [] array,int first,int end)
{
if(first<end)
{
int location=Qsort(array ,first, end);
QuickSort(array ,first, location-1);
QuickSort(array ,location+1, end);
}
System.out.print("\n");
for(int i=0;i<array.length;i++)
System.out.print(array[i]+"\t");

}
public int  Qsort(int[] array ,int first,int end)
{//一趟排序
int i=first,j=end,location=first,temp=array[first];
while(i<j)
{
if(location<j)
{//可以被覆盖的位置在左边
if(temp>array[j])
{//右边的值小于temp,右边放在左边则array[j]变得可以被覆盖
array[i]=array[j];
location=j;//记录可以被覆盖的位置
i++;
}
else
j--;
}
else if(location>i)
{//可以被覆盖的位置在右边
if(temp<array[i])
{
array[j]=array[i];
location=i;
j--;
}
else
i++;
}
}
array[location]=temp;
return location;
}
}

快排的java两种实现方式

快排是最基础的几个排序算法之一,今天再来
  • qarkly112649
  • qarkly112649
  • 2014年06月29日 17:24
  • 29130

java实现递归快排和非递归快排

package sort; import java.util.Random; public class QuickSort { public static Random random = new...
  • chenzhichao
  • chenzhichao
  • 2016年05月28日 18:23
  • 559

快排(QuickSort)的java语言的实现

快速排序快排的思想与前面所介绍的归并排序的思想类似,也是采用了分治法 算法思想如下: 第一步:分解,数组arr[l..r]别分为两个子数组arr[l..q-1]和arr[q+1..r],使...
  • u010412719
  • u010412719
  • 2015年05月31日 19:17
  • 1384

Java之美[从菜鸟到高手演变]之常见的几种排序算法-插入、选择、冒泡、快排、堆排等

排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序、选择排序、冒泡排序、快速排序(重点)、堆排序、归...
  • u013749540
  • u013749540
  • 2016年08月23日 08:57
  • 293

Java实现常见的排序算法之快排(快速排序)

快速排序算法是也,笔试面试中常被拿来做为问题,要求写出其实现过程和思想...
  • u011437847
  • u011437847
  • 2016年05月12日 11:03
  • 5468

java排序之快排

这篇文章来谈谈快排,最近有一种感觉,只要有规律可循的代码,分解成为两部分以后效率就会提高很多。代码思想如下  这个代码写的是快排,快排最主要的思维就是寻找一个分界值,大的放在一边,小的放在一边,然后...
  • justperseve
  • justperseve
  • 2016年04月29日 09:39
  • 3561

算法之道(二):快速排序—三路快排 vs 双基准

快速排序被公认为是本世纪最重要的算法之一,这已经不是什么新闻了。对很多语言来说是实际系统排序,包括在Java中的Arrays.sort。 那么快速排序有什么新进展呢? 好吧,就像我刚才提到的那样(...
  • bhlvzzl1314
  • bhlvzzl1314
  • 2014年01月10日 11:06
  • 1837

java-归并排序与快排的效率比较

java-归并排序与快排的效率比较用java完整地实现了归并排序和快速排序,然后测试两个算法在数组长度由100增加到一亿过程中的时间复杂度,比较两个算法效率。...
  • ppp8300885
  • ppp8300885
  • 2016年10月16日 16:51
  • 1290

快排递归和非递归(java)

快速排序递归和非递归版本
  • qq_18952073
  • qq_18952073
  • 2017年12月14日 21:15
  • 20

普林斯顿公开课 算法3-3:三路快排

很多时候排序是为了对数据进行归类,比如对城市进行排序,对员工的职业进行排序。这种排序的特点就是重复的值特别多。 如果使用普通的快排对这些数据进行排序,会造成N^2复杂度,但是归并排序...
  • caipeichao2
  • caipeichao2
  • 2014年06月06日 16:59
  • 1495
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java快排
举报原因:
原因补充:

(最多只允许输入30个字)