Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1680196
  • 博文数量: 1493
  • 博客积分: 38
  • 博客等级: 民兵
  • 技术积分: 5834
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-19 17:28
文章分类

全部博文(1493)

文章存档

2016年(11)

2015年(38)

2014年(137)

2013年(253)

2012年(1054)

2011年(1)

分类:

2012-05-17 08:54:33

以下是我写的插入排序算法:
#include
#include
using namespace std;
main()
{
    int a[10]={
     0
    }; 
 int i,j,entry,temp;
    cout<<"input..."<    cin>>entry;
    a[0]=entry;
 for(i=1;i<10;i++)
  {
         cout<<"input..."<         cin>>entry;
    a[i]=entry; 
    if(a[i]    {
    temp=a[i];
     for(j=i-1;a[j]>temp;j--) //a[-1]的值可能很大(这个是我后来分析可能的原因)
      {
             a[j+1]=a[j];
      }
     a[j+1]=temp;
    }
   }
  cout<<"the sort result..."<  for(i=0;i<10;i++)
     cout<}
 
这段代码,也有运行正确的时候,但是大部分是会得到错误的结构。
后来我分析在 for(j=i-1;a[j]>temp;j--) 处当j=0时,j--将变成-1,但是a[-1]是未定义的可能是个很大的值,天知道是什么。
于是将其改为 for(j=i-1;j>=0&&a[j]>temp;j--) 成功了!!
阅读(221) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~