数据结构问题 直接插入排序

sinat_26008679 2016-01-04 11:07:42
#include <stdio.h>
#include<stdlib.h>
#include <time.h>


#define MAXSIZE 20
typedef int KeyType;
typedef int InfoType;
typedef struct{
KeyType key;
InfoType otherinfo;
}RedType;
typedef struct{
RedType r[MAXSIZE+1];
int length;
}SqList;
int LT(int x,int y){
if(x<y)
return 1;
else
return 0;
}

void InsertSort(SqList &L)
{

for(int i=2;i<=L.length;i++)
if(LT(L.r[i].key,L.r[i-1].key))
{
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];

int j=i-2;
for(;LT(L.r[0].key,L.r[j].key);j--)

L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
int main()
{ SqList L;
L.length=10;
for(int x=0;x<10;x++)
{
scanf("%d",&L.r[x].key);
}
InsertSort(L);

for(int j=0;j<=L.length;j++)
{
printf("%d\t",L.r[j].key);
}
return 0;
}
运行结果总是不正确 帮忙看看是什么问题
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilianjie001 2016-01-11
  • 打赏
  • 举报
回复
for(int x=1;x<=10;x++) { scanf("%d",&L.r[x].key); }
lilianjie001 2016-01-11
  • 打赏
  • 举报
回复
for(int x=1;x<=10;x++)
	{	 
		scanf("%d",&L.r[x].key);
	}
算法本身并没有错误
string_win 2016-01-11
  • 打赏
  • 举报
回复
为什么感觉这插入排序好别扭。。。
赵4老师 2016-01-04
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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