关于数组内的数从小到大排列 大家帮帮我,数组内的数从小到大排列要怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class sort { java.lang.Comparable d[]; sort(java.lang.Comparable data[]) { d=data; } public void quickSort(int l,int r) { if(l>=r) return; int k=(l+r)/2; int last=l; swap(k,r); for(int i=l;i<r;i++) if(d[i].compareTo(d[r])==-1) swap(last++,i); //partition swap(last,r); quickSort(l,last-1); quickSort(last+1,r); } private void swap(int a,int b) { java.lang.Comparable t=d[a]; d[a]=d[b]; d[b]=t; } public static void main(String s[]) { //for test Integer t[]={ new Integer(4), new Integer(1), new Integer(3) }; new sort(t).quickSort(0,t.length-1); for(int i=0;i<t.length;i++) System.out.print(t[i]+" "); System.out.println(); }}这里使用的是快排,算法复杂度o(nlogn)是平均状况下的。类的使用方法在main里面已经演示了,需要注意的是:为了模拟c++的template,我用了java.lang.Comparable接口,所以在使用基本数据类型的使用要用类封装。例如,int的封装类是Integer,double的封装类是Double。 泡泡最简单。。 for(int x=0; x<max-1; x++) for( int y=0; y<max-1-x; y++) if(array[y]>array[y+1]) { charge value between array[y] and array[y+1] ..................} 控制台下javac入门用法 word 转 chm ,制作 javascript在不同屏幕上取图片一个点坐标,现在是能取,但随着在不同屏幕上取点,这个点坐标会变,急!!!,哪位高手帮我看看 急求 一个简单的正则表达式 自动化专业英语(王宏文) 翻译 windows下的CVS问题,先谢了 怎么加载小应用程序啊!按照书上行不通 急:请教各位高人从excel读取时间后显示的问题 关于applet先是特大图片文件的问题。帮帮忙,快急死了!!-------在线!! 怎样写一个函数将指定的一年中的所以星期六、星期日的日期都取出来?? java编程思想第二版和第三版 谁更好些? 求助!如何控制光驱?
java.lang.Comparable d[];
sort(java.lang.Comparable data[]) { d=data; }
public void quickSort(int l,int r) {
if(l>=r) return;
int k=(l+r)/2;
int last=l;
swap(k,r);
for(int i=l;i<r;i++)
if(d[i].compareTo(d[r])==-1)
swap(last++,i); //partition
swap(last,r);
quickSort(l,last-1);
quickSort(last+1,r);
}
private void swap(int a,int b)
{
java.lang.Comparable t=d[a];
d[a]=d[b];
d[b]=t;
}
public static void main(String s[])
{
//for test
Integer t[]={ new Integer(4), new Integer(1), new Integer(3) };
new sort(t).quickSort(0,t.length-1);
for(int i=0;i<t.length;i++)
System.out.print(t[i]+" ");
System.out.println();
}
}
这里使用的是快排,算法复杂度o(nlogn)是平均状况下的。类的使用方法在main里面已经演示了,需要注意的是:为了模拟c++的template,我用了java.lang.Comparable接口,所以在使用基本数据类型的使用要用类封装。例如,int的封装类是Integer,double的封装类是Double。
for(int x=0; x<max-1; x++)
for( int y=0; y<max-1-x; y++)
if(array[y]>array[y+1])
{ charge value between array[y] and array[y+1]
..................}