排序算法的最快实现

这篇blog先不要看了,代码有问题,请看新一篇, 排序算法的最快实现 JAVA and C(http://blog.csdn.net/qingshi163/archive/2008/06/30/2598659.aspx)。谢谢。                                                                                                                                                                                                                                                                                                   这个帖子很有意思 http://topic.csdn.net/u/20080624/11/55e5a350-d260-4a35-a02a-71b4c1795a00.html?seed=617041840,是讲排序算法的快速实现的,我在后面发了3个回复后,本来还想发一个的,不过我的等级,发不了了,我把我的回复贴上来。<br /><br />join_sleep的代码还可以更快,他的代码里的temp[]根本没有用处啊,这里是我改的代码,算出来结果也是正确的,而且一千万速度由140提高到77。
import java.util.Random;



/**

 * @(#)sort1.java

 *

 *

 * @author 

 * @version    1.00 2008/6/28

 */



public class sort1 {

    

    public static final int MAX = 10000000;

    

    /**

     * @param args the command line    arguments

     */

    public static void main(String[] args) {

        Random r = new Random(20080628L);

        int[] nums = new int[MAX];

        for(int    i =    0; i < MAX;    i++) {

            nums[i] = r.nextInt(MAX);

        }

        long begin,    end;

        System.out.println("start");

        begin =    System.currentTimeMillis();

        sort_john_sheep(nums);

        end    = System.currentTimeMillis();

        System.out.println(end - begin);

        //show(nums);

    }

    

    public static void show(int[] nums) {

        for(int i = 0; i < MAX; i++) {

            System.out.println(nums[i]);

        }

    }

    

    public static int[] sort_john_sheep(int[] nums) {

        int size = MAX;

        int max = getMax_john_sheep(nums) + 1;

        //byte[] temp = new byte[max];

        int i;

        //for(i = 0; i < size; i++)

        //    temp[i]++;

        int pos = 0;

        int l;//System.out.println(temp[1] + ":" + temp[2]);

        for (i = 0; i < max; i++) {

            for (l = 0; l < 1/*temp[i]*/; l++)

                nums[pos++] = i;

        }

        

        return nums;

    }   

    

    private static int getMax_john_sheep(int[] data) {

        int max = 0;

        for (int i = 0; i < MAX; i++) {

            if (i > max) {

                max = i;

            }

        }

        return max;

    }

}



还有个没发上去的。 ……,还可以再改,速度由77-51……怎么那么多无用的代码……
import java.util.Random;



/**

 * @(#)sort1.java

 *

 *

 * @author 

 * @version	1.00 2008/6/28

 */



public class sort1 {

	

	public static final int MAX = 10000000;

	

	/**

	 * @param args the command line	arguments

	 */

	public static void main(String[] args) {

		Random r = new Random(20080628L);

		int[] nums = new int[MAX];

		for(int	i =	0; i < MAX;	i++) {

			nums[i] = r.nextInt(MAX);

		}

		long begin,	end;

		System.out.println("start");

		begin =	System.currentTimeMillis();

		//sort(nums);

		sort_john_sheep(nums);

		end	= System.currentTimeMillis();

		System.out.println(end - begin);

		//show(nums);

	}

	

	public static void show(int[] nums) {

		for(int i = 0; i < MAX; i++) {

			System.out.println(nums[i]);

		}

	}

	

	public static int[] sort_john_sheep(int[] nums) {

		int size = MAX;

		int max = getMax_john_sheep(nums) + 1;

		//byte[] temp = new byte[max];

		int i;

		//for(i = 0; i < size; i++)

		//	temp[i]++;

		int pos = 0;

		//int l;//System.out.println(temp[1] + ":" + temp[2]);

	    for (i = 0; i < max; i++) {

	    	//for (l = 0; l < 1/*temp[i]*/; l++)

	    		nums[pos++] = i;

	    }

		

		return nums;

	}   

	

	private static int getMax_john_sheep(int[] data) {

		int max = 0;

		for (int i = 0; i < MAX; i++) {

			if (i > max) {

				max = i;

			}

		}

		return max;

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值