| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 462 人关注过本帖
标题:前插算法。。疑问
只看楼主 加入收藏
ay2450
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-4-13
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:3 
前插算法。。疑问
void main()
{    int x, i, j, a[5]={ 2,5,8,10 };
     scanf(“%d”, &x);
     if ( x>a[3])i=4;      ---------这里开始就不知道在说什么啦。。麻烦高手逐一解释下,
     else  {   for( i=0;i<5; i++)
                      if ( x<=a[i] ) break;
                  for( j=3; j>=i; j-- )
                      a[j+1]=a[j];
              }
     a[i]=x;
     for(j=0;j<5;j++)   printf(“%d ”,a[j]);
}
搜索更多相关主题的帖子: 算法 疑问 
2010-05-18 23:10
炫舞小子
该用户已被删除
收藏
得分:10 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-18 23:33
ay2450
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-4-13
收藏
得分:0 
回复 楼主 ay2450
额,这是在课件上找到的,
说是在已经排好的数内插入一个数,使仍保持排序正确。
这个是前插法。。
但是我看不懂。。
希望您能帮忙解答下难题。。
2010-05-19 10:49
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:10 
#include <stdio.h>
int main()
{
    int x,i,j,a[5]= {2,5,8,10};
    scanf("%d",&x);
    if(x>a[3])
        i=4;     //a中只有4个值  为a[0]~a[3]由于已经排好了序,如果x比最大的a[3]还要大 不用比直接存入a[4]
    else
    {
        for(i=0; i<5; i++)
            if(x<=a[i])  
                break;     //找到第一个不小于x的值
        for( j=3; j>=i; j-- )
            a[j+1]=a[j];   //逆序赋值  注意没有对x进行操作
    }
    a[i]=x;    //将x的值赋给a[i]
    for(j=0; j<5; j++)
        printf("%d ",a[j]);//输出数组a
    return 0;
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-05-19 11:00
快速回复:前插算法。。疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024346 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved