免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 漂泊的人
打印 上一主题 下一主题

插入排序的一个源程序 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-05-07 11:44 |只看该作者

插入排序的一个源程序

编译成功啊,我改改看吧!

论坛徽章:
0
12 [报告]
发表于 2003-05-07 11:47 |只看该作者

插入排序的一个源程序

还有就是发帖时以后写清楚标题

如果发帖超过10还标题不清楚的话删除

论坛徽章:
0
13 [报告]
发表于 2003-05-07 11:49 |只看该作者

插入排序的一个源程序

呵呵,别打消我的积极性

论坛徽章:
0
14 [报告]
发表于 2003-05-07 11:59 |只看该作者

插入排序的一个源程序

发清楚是为了以后的查阅方便
而且只是多打几个字
另外如果你方便的话自己修改一下标题

不然等到你到100
这帖子还在浮的话那么会删除的

论坛徽章:
0
15 [报告]
发表于 2003-05-07 15:12 |只看该作者

插入排序的一个源程序

我改了!

论坛徽章:
0
16 [报告]
发表于 2003-05-07 16:25 |只看该作者

插入排序的一个源程序

谢谢

规则有好的方面也有坏的方面

为了公平只能让大家都改标题了

论坛徽章:
0
17 [报告]
发表于 2003-05-09 17:46 |只看该作者

插入排序的一个源程序

我改好了,正确的源程序如下:

  1. #include <iostream.h>;
  2. #include <conio.h>;
  3. const int maxsize=5;
  4. typedef struct {
  5. int key;
  6. char *keyinfo;
  7. }redtype;
  8. redtype *r[maxsize+1];
  9. void init()
  10. {int i;
  11. r[0]=new redtype;
  12. r[0]->;key=0;
  13. r[0]->;keyinfo="d";
  14. cout<<"please input the data value:"<<endl;
  15. for (i=0;i<maxsize;i++)
  16. {
  17. r[i+1]=new redtype;
  18. cin>;>;r[i+1]->;key;
  19. r[i+1]->;keyinfo="d";
  20. };
  21. };
  22. void insertsort()
  23. {
  24. extern int lt(int a,int b);
  25. int j;
  26. for(int i=2;i<=maxsize;i++)
  27. {
  28. if (lt(r[i]->;key,r[i-1]->;key))
  29. {
  30. r[0]->;key=r[i]->;key;
  31. for(j=i-1;(lt(r[0]->;key,r[j]->;key)&&j>;0);--j)
  32. {r[j+1]->;key=r[j]->;key;
  33. }
  34. r[j+1]->;key=r[0]->;key;
  35. }
  36. }
  37. };
  38. int lt(int a,int b)
  39. {if (a>;b)
  40. return 0;
  41. else
  42. return 1;
  43. };
  44. void display()
  45. {int i;
  46. cout<<"the list of sorted data is:";
  47. for (i=1;i<=maxsize;i++)
  48. cout<<r[i]->;key<<" ";
  49. };
  50. main()
  51. {extern void init();
  52. extern void insertsort();
  53. extern int  lt(int a,int b);
  54. extern void display();
  55. init();
  56. insertsort();
  57. display();
  58. getch();
  59. }
复制代码

论坛徽章:
0
18 [报告]
发表于 2003-05-09 18:21 |只看该作者

插入排序的一个源程序

逻辑部分没有细看
运行成功了吗
是不是可以正确排序了


  1. void insertsort()
  2. {
  3.         extern int lt(int a,int b);
  4.         int j;
  5.         for(int i=2;i<=maxsize;i++)
  6.         {
  7.                 if (lt(r[i]->;key,r[i-1]->;key))//如果i<i-1
  8.                 {
  9.                         r[0]->;key=r[i]->;key;
  10.                         //查找插入位置,把i 插入到一个排好序的数组中
  11.                         for(j=i-1;(lt(r[0]->;key,r[j]->;key)&&j>;0);--j)
  12.                         {
  13.                                 r[j+1]->;key=r[j]->;key;
  14.                         }
  15.                         r[j+1]->;key=r[0]->;key;
  16.                 }
  17.         }
  18. };
复制代码

论坛徽章:
0
19 [报告]
发表于 2003-05-09 18:26 |只看该作者

插入排序的一个源程序


  1. #include <iostream.h>;
  2. #include <conio.h>;
  3. const int maxsize=5;
  4. typedef struct {
  5.         int key;
  6.         char *keyinfo;
  7. }redtype;
  8. redtype *r[maxsize+1];
  9. void init()
  10. {int i;
  11.         r[0]=new redtype;
  12.         r[0]->;key=0;
  13.         r[0]->;keyinfo="d";
  14.         cout<<"please input the data value:"<<endl;
  15.         for (i=0;i<maxsize;i++)
  16.         {
  17.                 r[i+1]=new redtype;
  18.                 cin>;>;r[i+1]->;key;
  19.                 r[i+1]->;keyinfo="d";
  20.         };
  21. };
  22. void insertsort()
  23. {
  24.         extern int lt(int a,int b);
  25.         int j;
  26.         for(int i=2;i<=maxsize;i++)
  27.         {
  28.                 if (lt(r[i]->;key,r[i-1]->;key))
  29.                 {
  30.                         r[0]->;key=r[i]->;key;
  31.                         for(j=i-1;(lt(r[0]->;key,r[j]->;key)&&j>;0);--j)
  32.                         {
  33.                                 r[j+1]->;key=r[j]->;key;
  34.                         }
  35.                         r[j+1]->;key=r[0]->;key;
  36.                 }
  37.         }
  38. };
  39.         int lt(int a,int b)
  40. {if (a>;b)
  41.         return 0;
  42.         else
  43.                 return 1;
  44. };
  45. void display()
  46. {int i;
  47.         cout<<"the list of sorted data is:";
  48.         for (i=1;i<=maxsize;i++)
  49.                 cout<<r[i]->;key<<" ";
  50. };
  51. main()
  52. {extern void init();
  53.         extern void insertsort();
  54.         extern int  lt(int a,int b);
  55.         extern void display();
  56.         init();
  57.         insertsort();
  58.         display();
  59.         getch();
  60. }
  61. #include "ager.h"

  62. int main()
  63. {
  64.         Ager<int>; ager(3);

  65.         ager.push_back(10);
  66.         ager.tick();
  67.         ager.push_back(11);
  68.         ager.tick();
  69.         ager.push_back(12);
  70.         ager.tick();
  71.         ager.push_back(13);
  72.         ager.push_back(14);
  73.         ager.push_back(15);
  74.         ager.tick();

  75.         cout << "ager contains " << ager.size() << " elements:" << endl;
  76.         for (Ager<int>;::iterator i = ager.begin() ; i != ager.end() ; ++i)
  77.                 cout << i.getAge() << ":" << *i << endl;
  78.         cout << endl;
  79.         for (Ager<int>;::reverse_iterator r = ager.rbegin(); r != ager.rend() ; ++r)
  80.                 cout << r.getAge() <<":"<< *r << endl;

  81.         return EXIT_SUCCESS;
  82. }

  83. /** SHOULD PRINT:

  84.   ager contains 4 elements:
  85. 2:12
  86. 1:13
  87. 1:14
  88. 1:15

  89. 1:15
  90. 1:14
  91. 1:13
  92. 2:12

  93. */

复制代码


看了看算法
我想现在应该成功了吧
我是没有看出问题

论坛徽章:
0
20 [报告]
发表于 2003-05-09 18:49 |只看该作者

插入排序的一个源程序

插入排序有怎么烦吗??

为什么要用指针~~~还有keyinfo部分~~??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP