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

云寻觅 2013-05-04 11:08:07
同样的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() + "毫秒");

}
...全文
188 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
足球中国 2013-05-04
  • 打赏
  • 举报
回复
话说这个很无聊。。
青松2 2013-05-04
  • 打赏
  • 举报
回复
我是来接分的
linrachel 2013-05-04
  • 打赏
  • 举报
回复
真的很有意思。
云寻觅 2013-05-04
  • 打赏
  • 举报
回复
楼上各位回答都很有意思,只是离题好象有点远啊
真相重于对错 2013-05-04
  • 打赏
  • 举报
回复
另外还有一个因素是非托管的程序自由的掌握所有资源非配,而托管只能寄希望与GC,就好像一个手动挡车在一个好司机手里会比自动挡车省油,而在一个垃圾司机手里,恐怕只能是毁车费油了
真相重于对错 2013-05-04
  • 打赏
  • 举报
回复
非托管要说效率高的话一个主要的因素是非托管的程序不用二次编译
真相重于对错 2013-05-04
  • 打赏
  • 举报
回复
托管的调用非托管,牵涉到数据要从托管内存这边封送到非托管的那边,你这样的比较没有意义
  • 打赏
  • 举报
回复
如果你把排序功能换成“交换前50个元素跟后50个元素的位置”试试看。你可以看到,排序根本没有花什么时间,时间都花在别的事情上了。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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