这个排序算法哪不对啊

sjy666666 2012-03-18 12:18:28
void insertsort(int a[],int n)
{
int i,j,t;
for(i=1;i<=n;i++)
{
t=a[i];
j=i-1;
if(a[i]<a[i-1])
{
while(a[i]<a[j]&&j>=0)
{
a[j+1]=a[j];
a[j]=t;
j--;
}
}
else
a[j+1]=t;
}
}
main()
{
int a[11]={0,5,2,9,6,12,7,15,3,8,10},i;
insertsort(a,10);
for(i=0;i<=10;i++)
printf("%3d",a[i]);
}
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
icrazy4444 2012-03-18
  • 打赏
  • 举报
回复
我修改了下:可以了
void insertsort(int a[],int n)
{
int i,j,t;
for(i=1;i<=n;i++)
{
t=a[i];
j=i-1;
if(a[i]<a[j])
{
while(t<a[j]&&j>=0)
{
a[j+1]=a[j];
--j;
}
a[++j]=t;
}
//else
//a[j+1]=t;
}
}
int main()
{
int a[11]={0,5,2,9,6,12,7,15,3,8,10},i;
insertsort(a,10);
for(i=0;i<=10;i++)
printf("%d\40",a[i]);
return 0;
}
Furney 2012-03-18
  • 打赏
  • 举报
回复

void InsertSort(int a[], int n)
{
int i, j, tmp;
for(i = 1; i < n; i++)
{
tmp = a[i];
for(j = i; j > 0 && tmp < a[j - 1]; j--)
{
a[j] = a[j - 1];
}
a[j] = tmp;
}
}
shyrgst 2012-03-18
  • 打赏
  • 举报
回复
#include "stdio.h"
void insertsort(int a[],int n)
{
int i,j,t;
for(i=1;i<=n;i++)
{
t=a[i];
j=i-1;
while( j>=0)
{
if(a[j+1]<a[j])
{
a[j+1]=a[j];
a[j]=t;
}
j--;
}
}
}
void main()
{
int a[11]={0,5,2,9,6,12,7,15,3,8,10},i;
insertsort(a,10);
for(i=0;i<=10;i++)
printf("%3d",a[i]);
}
flowingfirefly 2012-03-18
  • 打赏
  • 举报
回复
insert函数中的变量j未初始化

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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