| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 591 人关注过本帖
标题:冒泡排序求教
取消只看楼主 加入收藏
菜鸟要努力
Rank: 1
等 级:新手上路
帖 子:27
专家分:1
注 册:2013-3-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
冒泡排序求教
#include<stdio.h>
void main()
{
    int i=0,j=0,p=0;
    int a[7]={1,2,8,3,2,4,9};
    for(j=1;j<=5;j++)
        for(i=1;i<=6-j;i++)
            if(a[i]<a[i+1])
            {
                p=a[i];
                a[i]=a[i+1];
                a[i+1]=p;
            }
            for(i=6;i>0;i--)
                printf("a[%d]=%d\n",i,a[i]);
}
请问下里面的i表示第j遍扫描待比较元素的下标,i=1,2,...n-j;
排序后变化(不设置a[0])
a[6] 9                     1
a[5] 4                     9
a[4] 2  第一次扫描后排序为 4
a[3] 3                     2
a[2] 8                     3
a[1] 1                     8
然后比如说如题n=6,假设是第1遍扫描,那么就是i=6-1=5,就是a[5] 然后就是9了...不应该是1吗?这个怎么理解呢?
谢谢~~

搜索更多相关主题的帖子: 扫描 include 元素 
2013-03-04 19:06
菜鸟要努力
Rank: 1
等 级:新手上路
帖 子:27
专家分:1
注 册:2013-3-4
收藏
得分:0 
回复 7楼 smile_line
额...简单说就是不明白i跟j的关系
2013-03-04 23:47
菜鸟要努力
Rank: 1
等 级:新手上路
帖 子:27
专家分:1
注 册:2013-3-4
收藏
得分:0 
回复 4楼 逆风而前
课本例题是从a[1]开始的,最底层是a[1]的 然后就是不太明白i跟j的关系 为什么是i<=6-j
2013-03-04 23:49
菜鸟要努力
Rank: 1
等 级:新手上路
帖 子:27
专家分:1
注 册:2013-3-4
收藏
得分:0 
回复 10楼 nandiin
好的 谢谢!
2013-03-06 20:01
快速回复:冒泡排序求教
数据加载中...
 
   



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

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