您的位置:首页 > 编程语言 > Java开发

Java泛型使用冒泡排序与快速排序算法

2016-10-31 17:13 459 查看
/*
*  @author kellygod
*
* 此泛型可以是Integer ,Double ,Float , Long
*
* eg. Sort<Double> s=new Sort<Double>();
* Double[] array={98.1,32.10,3.45,4.1,-5.3,6.4,10.0,99.265,16.0,-4.0,-10.0};
* Sort<Double> s=new Sort<Double>();
* Double[] array1=s.sentrySort(array);
* for(Double m :array1)
*   System.out.print(m+"  ");
*
* */
public class Sort<T  extends Comparable<T>> {

private T[] marray;
public T[] getSort(){
return this.marray;
}

//冒泡排序
public T[] bubbleSort(T array[]){
this.marray=array;
for(int i=0;i<marray.length;i++)
for(int j=i+1;j<marray.length;j++)
if(marray[i].compareTo(marray[j])>0){
T tmp=marray[i];
marray[i]=marray[j];
marray[j]=tmp;
}
return this.marray;
}

//快速排序
public T[] sentrySort(T[] s){
quickSort(s,0,s.length-1);
return s;
}
private void quickSort(T[] s,int offset,int length){

if(offset>=length)
return;
T t = s[offset];
int f = offset+1;
int b=length;
T m;

while(f<=b){
while(f<=b && s[f].compareTo(t)<=0){
f++;
}
while(f<=b && s[b].compareTo(t)>=0){
b--;
}
if(f<b){
m=s[f];
s[f]=s[b];
s[b]=m;
f++;
b--;
}
}

s[offset]=s[b];
s[b]=t;

quickSort(s,offset,b-1);
quickSort(s,b+1,length);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: