快速排序三种
2017-06-03 15:48
162 查看
package xiaozhao;
public class Quick {
//百度百科
//实现一
public void sort(int arr[],int low,int high)
{
int l=low;
int h=high;
int povit=arr[low];
while(l<h)
{
while(l<h&&arr[h]>=povit)
h--;
if(l<h)
{
int temp=arr[h];
arr[h]=arr[l];
arr[l]=temp;
l++;
}
while(l<h&&arr[l]<=povit)
l++;
if(l<h)
{
int temp=arr[h];
arr[h]=arr[l];
arr[l]=temp;
h--;
}
}
System.out.println(arr);
System.out.println("l="+(l+1)+"h="+(h+1)+"povit"+povit);
if(l>low)
sort(arr,low,l-1);
if(h<high)
sort(arr,l+1,high);
}
//实现二
public <T extends Comparable<?super T>> T[] quickSort(T[] targetArr,int start,int end)
{
int i=start+1;
int j=end;
T key=targetArr[start];
SortUtil<T> sUtil=new SortUtil<T>();
return targetArr;
}
//实现二
}
public class Quick {
//百度百科
//实现一
public void sort(int arr[],int low,int high)
{
int l=low;
int h=high;
int povit=arr[low];
while(l<h)
{
while(l<h&&arr[h]>=povit)
h--;
if(l<h)
{
int temp=arr[h];
arr[h]=arr[l];
arr[l]=temp;
l++;
}
while(l<h&&arr[l]<=povit)
l++;
if(l<h)
{
int temp=arr[h];
arr[h]=arr[l];
arr[l]=temp;
h--;
}
}
System.out.println(arr);
System.out.println("l="+(l+1)+"h="+(h+1)+"povit"+povit);
if(l>low)
sort(arr,low,l-1);
if(h<high)
sort(arr,l+1,high);
}
//实现二
public <T extends Comparable<?super T>> T[] quickSort(T[] targetArr,int start,int end)
{
int i=start+1;
int j=end;
T key=targetArr[start];
SortUtil<T> sUtil=new SortUtil<T>();
return targetArr;
}
//实现二
}
相关文章推荐
- 快速排序的三种写法的效率比较
- js实现常见的三种排序方法(冒泡排序、快速排序、归并排序)
- 快速排序的三种优化
- 快速排序、归并排序、堆排序三种算法性能比较
- 快速排序的三种实现
- O(lgn)的三种排序,快速排序、归并排序、堆排序
- 快速排序的三种写法的效率比较
- 快速排序的三种实现方法体会
- 快速排序的实现(三种划分元素的实现,双指针
- 快速排序三种实现方法
- 快速排序的三种实现及两种优化
- 快速排序的三种实现方式以及非递归版本
- 快速排序的三种实现以及应用场景
- 读取文件内的数据(数字)并进行三种排序,1(快速排序)2(归并排序)3(希尔排序)。
- 快速排序的三种不同的实现方式。
- 快速排序(三种算法实现和非递归实现)
- 三种改进型排序算法-快速排序,堆排序,希尔排序
- C++三种排序,快速排序、选择排序、冒泡排序----简单代码
- 【快速排序】QuickSort(三种实现方法)c++描述
- 其他三种排序:堆排序,归并排序,快速排序