免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2798 | 回复: 3
打印 上一主题 下一主题

排序,疑问:在对大量大整数进行冒泡排序的时候,出现了与数组空间相关的奇怪问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-16 22:41 |只看该作者 |倒序浏览
运行环境:TCC  http://bellard.org/tcc/
我的源代码和输入数据文件,可以在这里下载:https://skydrive.live.com/?cid=B ... 35&sc=documents
======================
问题描述:
1、输入数据文件中,共有5814个整数,每个整数都很大,所以我用了一个64位的长整型数组进行排序。
2、我用的是冒泡排序。
3、如果排序所用的数组a的大小为a[6001],则排序结果有误;但如果改为a[10000](改大些),就可以正常工作了。

这是为什么呢?我觉得我的代码明显没有出现数组越界的问题啊!
另外,我的代码在Dev C++下也可以正常编译运行,但也会产生同样的问题。
请指点!谢谢!

代码如下:
  1. /*bubble.c*/
  2. #include <stdio.h>

  3. int main()
  4. {
  5.     int n,i,j;
  6.     long long t,
  7.         a[6001];    /*Change this to a[10000], then it works perfectly*/
  8.         
  9.     freopen("data.in.txt","r",stdin);
  10.     freopen("date.out.txt","w",stdout);
  11.     scanf("%d",&n);

  12.     /*Read input data from "data.in.txt"*/
  13.     for (i=1;i<=n;i++) {
  14.         scanf("%lld",&a[i]);
  15.         /*printf("i=%d\ta[i]=%lld\n",i,a[i]);*/
  16.     }

  17.     /*Bubble Sort*/
  18.     for (i=1;i<=n-1;i=i+1) {
  19.         for (j=n;j>=i+1;j=j-1) {
  20.             if (a[j]<a[j-1]) {
  21.                 t=a[j];
  22.                 a[j]=a[j-1];
  23.                 a[j-1]=t;
  24.             }
  25.         }
  26.     }

  27.     /*Output data to "data.out.txt"*/
  28.     for (i=1;i<=n;i++) {
  29.       printf("i=%d\ta[i]=%lld\n",i,a[i]);
  30.     }
  31.    

  32.     /*printf("Time used =%lf\n",(double)clock() / CLOCKS_PER_SEC);*/
  33.     /*system("pause");*/
  34.     return 0;
  35. }
复制代码

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
2 [报告]
发表于 2011-07-17 07:42 |只看该作者
你的算法我不认识,而且不知道输入数据的结构。

论坛徽章:
0
3 [报告]
发表于 2011-07-21 16:14 |只看该作者
本帖最后由 ghosthjf 于 2011-07-21 16:22 编辑

论坛徽章:
0
4 [报告]
发表于 2011-07-21 16:20 |只看该作者
又看了一下,还有其他问题,n来源不明。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP