当前位置:编程学习 > C#/ASP.NET >>

同样的1000万数组的排序算法为什么C# 用时0.5秒,而C语言用时0.6秒?

同样的1000万数组的排序算法为什么C# 用时0.5秒,而C语言用时0.6秒?

C语言 算法库

C#调用范例:
[DllImport("BwsyqIndex.dll")]
    public static extern void HzSort(int[] mi, int num_elements);

    protected void Page_Load(object sender, EventArgs e)
    {
        int iUp = 1000000;
        Random ro = new Random(10000000);
        long tick = DateTime.Now.Ticks; 

        int[] a = new int[10000000];
        for (int i = 0; i < 10000000; i++)
        {
            a[i] = ro.Next(10000000); 
        }
        //开始时间
        TimeSpan runTime = new TimeSpan(DateTime.Now.Ticks);

        HzSort(a, 10000000);

        //结束时间
        TimeSpan timeNow = new TimeSpan(DateTime.Now.Ticks);
        //时间间隔
        TimeSpan ts = timeNow.Subtract(runTime).Duration();
        Response.Write(" 用时:" + ts.TotalSeconds.ToString() + "秒 " + ts.TotalMilliseconds.ToString() + "毫秒");

    } --------------------编程问答-------------------- 如果你把排序功能换成“交换前50个元素跟后50个元素的位置”试试看。你可以看到,排序根本没有花什么时间,时间都花在别的事情上了。 --------------------编程问答-------------------- 托管的调用非托管,牵涉到数据要从托管内存这边封送到非托管的那边,你这样的比较没有意义 --------------------编程问答-------------------- 非托管要说效率高的话一个主要的因素是非托管的程序不用二次编译 --------------------编程问答-------------------- 另外还有一个因素是非托管的程序自由的掌握所有资源非配,而托管只能寄希望与GC,就好像一个手动挡车在一个好司机手里会比自动挡车省油,而在一个垃圾司机手里,恐怕只能是毁车费油了 --------------------编程问答-------------------- 楼上各位回答都很有意思,只是离题好象有点远啊 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 真的很有意思。 --------------------编程问答-------------------- 我是来接分的 --------------------编程问答-------------------- 话说这个很无聊。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,