如何对数组进行排序?高分请教!

lvlisong22 2004-04-20 12:53:55
我有一个数组,内容为1,22.7,13.5, 35, 78, 95
具体内容是变化的。上面只是做一参考。
如何用JSP写代码使其按到序排序??
...全文
4343 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
game0ver12345 2004-04-21
  • 打赏
  • 举报
回复
回复人: wuweihua(杀绝鬼子) ( ) 信誉:95 2004-04-21 11:10:00 得分:0


不好意思,我这个马大哈又写错了,正确的为下面形式
void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
int k=Array.length()-1;
for(int j=k;j>0;j=k){
k=0;
for(int i=0;i<j;i++){
if(Array[i]>Array[i+1]){
int t=Array[i];
Array[i]=Array[i+1];
Array[i+1]=t;
k=i;
}
}
}
}



====================================

兄弟,你能不能理解JAVA的特点?

别人房子都给你建好了,就差装修了。

你还要再建一栋房子?

说笑了。。。。。。。。。
==========================================================
二楼老兄,我知道java在数组Arrays类及聚合Collections中提供了一个sort()方法来对实现了Comparable接口的Object对象进行排序。
但它提供的方法对我们来说是黑洞,不知其排序效率如何,我认为还是用经典排序算法心里有底,我们可以根据实际情况选择恰当算法,比如快速排序,堆排序,改进冒泡排序等,而且这些经典排序算法对任何语言都一样,不受限于JAVA语言。你说呢?



================================================================

你详细说一下为什么它提供的方法不知其排序效率如何,你自己写的算法就有底?

如果你认为JVM提供的方法对我们来说是黑洞 ,那么你的经典排序算法一样建立在JVM这个大黑洞上。

JVM是建立在WINDOWS这个黑洞上,windows也是建立在INTEL CPU这个大黑洞上。你是不是认为SUN和Microsoft也是没底?

你的逻辑有错误。




wuweihua 2004-04-21
  • 打赏
  • 举报
回复
不好意思,我这个马大哈又写错了,正确的为下面形式
void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
int k=Array.length()-1;
for(int j=k;j>0;j=k){
k=0;
for(int i=0;i<j;i++){
if(Array[i]>Array[i+1]){
int t=Array[i];
Array[i]=Array[i+1];
Array[i+1]=t;
k=i;
}
}
}
}



====================================

兄弟,你能不能理解JAVA的特点?

别人房子都给你建好了,就差装修了。

你还要再建一栋房子?

说笑了。。。。。。。。。
==========================================================
二楼老兄,我知道java在数组Arrays类及聚合Collections中提供了一个sort()方法来对实现了Comparable接口的Object对象进行排序。
但它提供的方法对我们来说是黑洞,不知其排序效率如何,我认为还是用经典排序算法心里有底,我们可以根据实际情况选择恰当算法,比如快速排序,堆排序,改进冒泡排序等,而且这些经典排序算法对任何语言都一样,不受限于JAVA语言。你说呢?
wzy9645 2004-04-21
  • 打赏
  • 举报
回复
刚学一招java.util.Array.sort
wzy9645 2004-04-21
  • 打赏
  • 举报
回复
冒泡排序法
game0ver12345 2004-04-21
  • 打赏
  • 举报
回复
回复人: wuweihua(杀绝鬼子) ( ) 信誉:95 2004-04-21 10:06:00 得分:0


不好意思,我这个马大哈又写错了,正确的为下面形式
void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
int k=Array.length()-1;
for(int j=k;j>0;j=k){
for(int i=0;i<j;i++){
if(Array[i]>Array[i+1]){
int t=Array[i];
Array[i]=Array[i+1];
Array[i+1]=t;
k=i;
}
}
}
}



====================================

兄弟,你能不能理解JAVA的特点?

别人房子都给你建好了,就差装修了。

你还要再建一栋房子?

说笑了。。。。。。。。。
wuweihua 2004-04-21
  • 打赏
  • 举报
回复
不好意思,我这个马大哈又写错了,正确的为下面形式
void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
int k=Array.length()-1;
for(int j=k;j>0;j=k){
for(int i=0;i<j;i++){
if(Array[i]>Array[i+1]){
int t=Array[i];
Array[i]=Array[i+1];
Array[i+1]=t;
k=i;
}
}
}
}
wuweihua 2004-04-21
  • 打赏
  • 举报
回复
不好意思,刚才那个改进型冒泡排序写错了,它只进行了一次冒泡,正确的为下面形式。它比第一次写的直接插入排序效率要高。

void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
int k=Array.length()-1;
for(int j=k;j>0;j--){
for(int i=0;i<k;i++){
if(Array[i]>Array[i+1]){
int t=Array[i];
Array[i]=Array[i+1];
Array[j+1]=t;
k=j;
}
}
}
}

liutang2 2004-04-21
  • 打赏
  • 举报
回复
pleonheart(只睡六小时) 的方法太经典了!
wuweihua 2004-04-21
  • 打赏
  • 举报
回复
刚才算法效率不高,用下面这个算法吧。
void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
for(int i=0,k=Array.length();i<k-1;i++){
if(Array[i]>Array[i+1]){
int t=Array[i];
Array[i]=Array[i+1];
Array[j+1]=t;
k=j;
}
}
}
这个冒泡排序算法效率高些。
wuweihua 2004-04-21
  • 打赏
  • 举报
回复
void sort(int[] Array)throws Exception{
if(Array==null||Array.length()<=1)
return;
for(i=1;i<Array.length();i++){
for(int j=i;j>0;j--){
if(Array[j]<Array[j-1]){
int t=Array[j];
Array[j]=Array[j-1];
Array[j-1]=t;
}
}
}
}
还有那个人说先写数据库,再排序取出,效率太低,最好不要用,因为数据库的操作开销很大。思路为:建一表data,只有一字段field,把要排序的数据全写入这个字段,然后用一SQL语句排序取出:select * from data order by field desc;然后把结果依次存入目的数组即可。
caoco 2004-04-21
  • 打赏
  • 举报
回复
安装JDK的路径里就有例子源码,何必舍近求远呢
lvlisong22 2004-04-21
  • 打赏
  • 举报
回复
那你厉害,你帮我写一个啊,就是用JSP写啊!
wuweihua 2004-04-21
  • 打赏
  • 举报
回复
你学过数据结构没?排序算法何其多,又何其容易,唉,这么基础的问题!!!
threezxw 2004-04-21
  • 打赏
  • 举报
回复
具体的我也不会
lvlisong22 2004-04-21
  • 打赏
  • 举报
回复
可以采取曲线救国的方法
具体如何做啊,可以编一个函数吗??
programdolt 2004-04-21
  • 打赏
  • 举报
回复
Arrays.sort(数组);
hj12 2004-04-21
  • 打赏
  • 举报
回复
Collections 用集合类的方法最好!不知道吵什么吵
game0ver12345 2004-04-21
  • 打赏
  • 举报
回复
回复人: java1980(我爱JAVA) ( ) 信誉:96 2004-04-21 13:26:00 得分:0


哦,对了,我还要补充一下,java语言与JVM是两回事,所有的JAVA语言都要在jvm上运行,当然包括我们自己写的程序与java自带的包(就包括java.util.*),但是要搞清一点:
java自带的包与我们自己写的java程序是一个水平层次上的,它也像我们普通java程序一样在JVM上运行,其实它也是一般的java程序。我们刚才比较的就是两个java程序的效率,是用它自带的好还是自己亲自写好。这根JVM实现毫无关系,因为无论它怎么实现,它对两者一视同仁,提供一样的运行支持。
我认为自已写好,更灵活,可能能取得更大的运行效率,但多花一点写程序的时间。
你认为用它自带的好,少花写程序的时间,但我认为可能达不到理想时空效率。
关键问题是不知道它那个包中对这个sort()排序方法的实现细节,是否是只采用一种排序算法对所有数组或聚合进行实现,还是有点智能,自动调整实现算法,以达到最佳性能。


===================================================

你自己写一个JVM不好,更灵活。你还可以通过一些方法使用JVA解释得更快。最大不好就是要多花一点时间而已,而且自己写JVM,JVM对自己就是透明的,不是黑洞了。

^-^
game0ver12345 2004-04-21
  • 打赏
  • 举报
回复
二楼老兄,我知道java在数组Arrays类及聚合Collections中提供了一个sort()方法来对实现了Comparable接口的Object对象进行排序。
但它提供的方法对我们来说是黑洞,不知其排序效率如何,我认为还是用经典排序算法心里有底,我们可以根据实际情况选择恰当算法,比如快速排序,堆排序,改进冒泡排序等,而且这些经典排序算法对任何语言都一样,不受限于JAVA语言。你说呢?

==================================================

你认为JVM提供的排序方法对我们来说是黑洞,所以你要自己写排序算法。
  你为什么不认为JVM虚拟机对我们来说是黑洞,我们也要自己写虚拟机。

你的想法根本就是错,我们既然认为JVM是值得信任的,为什么我们不信任它的算法。为什么你信任JVM,为什么你就偏偏不信任它的排序算法。你认为JVM提供的排序方法对我们来说是黑洞,为什么你不认为JVM的其它部分对我们也是黑洞

你如果不懂使用JAVA的排序算法,只好自己写,那是权宜之计。如果你的算法比JAVA的强,你不屑于使用JAVA的排序算法,你强。

 你说你到底的目的是想搞什么 ,我说你舍近求远有什么错。
 你给我指出来。
  
  

java1980 2004-04-21
  • 打赏
  • 举报
回复
哦,对了,我还要补充一下,java语言与JVM是两回事,所有的JAVA语言都要在jvm上运行,当然包括我们自己写的程序与java自带的包(就包括java.util.*),但是要搞清一点:
java自带的包与我们自己写的java程序是一个水平层次上的,它也像我们普通java程序一样在JVM上运行,其实它也是一般的java程序。我们刚才比较的就是两个java程序的效率,是用它自带的好还是自己亲自写好。这根JVM实现毫无关系,因为无论它怎么实现,它对两者一视同仁,提供一样的运行支持。
我认为自已写好,更灵活,可能能取得更大的运行效率,但多花一点写程序的时间。
你认为用它自带的好,少花写程序的时间,但我认为可能达不到理想时空效率。
关键问题是不知道它那个包中对这个sort()排序方法的实现细节,是否是只采用一种排序算法对所有数组或聚合进行实现,还是有点智能,自动调整实现算法,以达到最佳性能。
加载更多回复(10)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧