C++排序算法的问题
#include"iostream.h" const int maxsize=1000; class Sort{ public: sort(int A[],int n); void InsertSort(int A[],int n); //直接插入排序 //void SelectSort(T A[],int n); //直接选择排序 //void BinaryInsertSort(T A[],int n); //二分插入排序 void BubbleSort(int A[],int n); //冒泡排序 //void ShellSort(T A[],int n); //希尔排序 private: int a[maxsize]; int n; }; Sort::sort(int A[],int n) { int i; for(i=0;i<=n;i++) { A[i]=a[i]; } } void Sort::InsertSort(int A[],int n) { for(int i=1;i<n;i++) { int temp=A[i]; //把待排序元素赋给temp; int j=i-1; while((j>=0)&&(temp<A[i])) { A[j+1]=A[j]; j--; } A[j+1]=temp; } } void Sort::BubbleSort(int A[],int n) { int flag=1; for(int i=1;i<n;i++) { flag=0; for(int j=n-1;j>=i;j--) if(A[j]<A[j-1]) { int t; t=A[j]; A[j]=A[j-1]; A[j-1]=t; flag=1; } if(flag==0) return; } } void main() { int A[]={1,5,4,9,2}; Sort sr; cout<<"直接插入排序后的结果为:"<<endl; sr.InsertSort(A,5); cout<<"冒泡排序后的结果为:"; cout<<endl; sr.BubbleSort(A,5); }
程序能够通过编译,但运行时没有结果。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
哪位大神能提供一下这个程序怎么改, 最终达到楼主要的效果啊?
没有无参构造函数。
汗!输出语句都木有!还试图有结果??
请问你的输出语句呢?
你的程序不能编译通过,不知道你是怎么编译通过的。
没有默认的无参构造函数。
05行构造函数写的不对,sort应该大写。
请自行添加无参构造函数
InsertSort方法内部边界判断有问题;请把第30行 temp<A[i] 改为 temp <A[j],因为temp<A[i] 是个绝对为假的判断。
没有结果,是因为你在程序运行之后没有打印结果数组。
另外,我不知道你程序12行的 int a[maxsize]是干什么用的,你程序里根本就没有用到它。
你的15行的有参构造没有用,第20为什么是A[i]=a[i]而不是a[i] = A[i]呢,虽然这个构造没有用到。
那个函数调用语句出问题了,函数没有被调用。
没结果就试试单步跟踪,看看在哪里出了问题