在对一组记录(60,43,100,30,21,79,65,21,90)进行直接插入排序时

wangzeba 2002-01-24 01:09:33
在对一组记录(60,43,100,30,21,79,65,21,90)进行直接插入排序时,当把它的第七个记录65插入到有序表时,为寻找插入位置需比较多少次?
(请说明解题方法,Thanks!!)
...全文
429 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwei75 2002-01-24
  • 打赏
  • 举报
回复 1
比较了3次分别与100,79,60比较,应为65〈 60 不成立,所以退出循环。源码如下:
void DirectInsert(int * pData,int n) //pData存放需要排序的数,n指明pData中数的个数
{
int Temp; //临时变量,存放当前需插入的数的副本
for(int i = 1;i<n;i++)
{
int j = i-1;
Temp = pData[i];
for(;j>=0 &&Temp<pData[j];j--) //比较
pData[j+1]=pData[j]; //移动
pData[j+1] = Temp; //插入
}
}

void main()
{
int Data[] = {60,43,100,30,21,79,65,21,90};
DirectInsert(Data,sizeof(Data)/sizeof(int));
}

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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