数据结构问题 直接插入排序
#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;
}
运行结果总是不正确 帮忙看看是什么问题
#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;
}
运行结果总是不正确 帮忙看看是什么问题

...全文
相关推荐
数据结构课设(猴子选大王、汉诺塔、各种排序)
资源包含课程设计报告与源代码。代码内容为各种排序(冒泡排序,选择排序,直接插入排序),汉诺塔问题,猴子选大王
分治策略在《数据结构》排序中的应用分析.pdf
#资源达人分享计划#
《数据结构》 查找和排序 实验报告
1 掌握查找的不同方法,并能用高级语言实现查找算法。 2 熟练掌握顺序表和有序表的顺序查找和二分查找方法。 3 掌握排序的不同方法,并能用高级语言实现排序算法。 4 熟练掌握顺序表的选择排序、冒泡排序和直接插入排序算法的实现。
简单了解C语言中直接插入排序与直接选择排序实现
主要介绍了C语言中直接插入排序与直接选择排序实现,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,需要的朋友可以参考下
数据结构 直接插入排序的算法源程序
数据排序中的一种最基本的排序算法 比较次数个移动次数约为n的平凡除4, 时间复杂度约为0(n的平凡)


新手乐园
