排序算法似乎是个老生常谈的问题,但是如果真让你在纸上写出来的话,恐怕总是错误不断。当然,我也一样。总觉得它似乎很简单,而不愿意去深究它。到用的时候总是错误百出。
那么今天就彻底解决这个问题。
下面是我刚写的一个算法,总的思想就是冒泡。
在循环中让每个元素和剩余的元素做比较,然后让值比较小的冒到最上方。
下面是具体程序:
import java.util.Random;
class ArraySequence
{
public static void main(String[] args)
{
int[] arrayL = new int[100000];
Random rd = new Random();
for(int i = 0;i < arrayL.length;i++)
{
arrayL[i] = Math.abs(rd.nextInt());
}
ArraySequence se = new ArraySequence();
long starttime = System.currentTimeMillis();
se.Sequence(arrayL);
long endtime = System.currentTimeMillis();
System.out.println((endtime-starttime));
//StringBuffer sb = new StringBuffer();
//for(int i = 0;i < arrayL.length;i++)
// sb.append(arrayL[i]+"*");
//System.out.println(sb.toString());
// System.out.println(Runtime.getRuntime().totalMemory());
}
public void Sequence(int[] arraylist)
{
int len = arraylist.length;
for(int i=0;i < arraylist.length;i++)
{
for(int j=i+1;j < len;j++)
{
if(arraylist[j] < arraylist[i])
{
int temp = 0;
temp = arraylist[j];
arraylist[j] = arraylist[i];
arraylist[i] = temp;
}
}
}
}
}
这是个测试的程序,主要的算法在方法Sequence()中,可以直接调用这个方法把数组传递进去即可。
在我的测试过程中,排序10000个元素大概用时500~550ms,也就是0.5S左右。
排序100000个元素大概用时60000左右,也就是1分钟左右。
速度方面还算可以吧。
也暂时想不出来什么更好的优化算法。
这个速度在J2ME游戏里应该是比较快了。
希望大家多讨论,排序算法也是J2ME游戏里用的最多的一个算法。
author:Sun Dongfeng
分享到:
相关推荐
J2ME中平方根算法!J2ME中平方根算法!J2ME中平方根算法!
j2me A*算法 最完整的A*算法,可以判断最短路径,可以判断8个方向
J2ME颜色渐变算法分析,原创。供大家参考和学习。
能在j2me项目使用zip技术和gzip压缩解压
j2me透明泡泡碰撞小程序,有小小BUG,不影响运行。其中碰撞响应算法希望有高手改进。。作者QQ 359103820
J2ME插值算法实现图片的放大缩小 J2ME插值算法实现图片的放大缩小
a* 寻路算法,j2me a* 寻路算法,j2me a* 寻路算法,j2me a* 寻路算法,j2me
五子棋人工智能算法,电脑算的上比较聪明了!可以人机对弈。
J2ME里面的线程和网络 J2ME里面的线程和网络 J2ME里面的线程和网络
java j2me 经典算法集合 附带A*算法哦 QQ5267621
J2ME插值算法实现图片的放大缩小方法,难得的好资料,欢迎下载使用!
j2me版A星寻路算法,适合RPG游戏中自动寻路...
J2ME的Des算法,自己调试过没有问题,希望大家交流学习使用。谢谢。
A*算法(j2me实现)A算法使用j2me实现
J2ME开发 J2ME开发 J2ME开发 J2ME开发
j2me里面各种漂亮进度条的制作方法,例子和简洁哦~~
j2me版A*寻路算法,实例程序,能运行,内有详细的注释
j2me实现的des加密解密算法 j2me实现的des加密解密算法 j2me实现的des加密解密算法
J2ME API J2ME API J2ME API J2ME API J2ME API