标题:[求助]如何实现在一次循环下既对数字排序又可以按由小到大输出
只看楼主
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
郑重说明一下.
不可能写出复杂度是O(n)的排序算法的.
LS说的可能写出一次循环,但循环变量已经是两个,而且可以分析,复杂度不是O(n).


倚天照海花无数,流水高山心自知。
2007-05-01 19:30
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
等等,我想出了个一次循环就能排序的好方法

用一个大循环....嘿嘿嘿嘿,反正你也没限定我这个循环最多循环多少次,到一定的次数我就控制i,j让他重新赋值就OK了,哈哈

淘宝杜琨
2007-05-01 19:39
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 
main()
{
for(i =0;i < 2*N;i++)
{
if(i < N)
{
第一次循环
}
else
{
第二次循环
}
}
}

main()
{
for(i = 0;i < M*N;i++)
{
i%N;
}
}
2007-05-01 20:16
洛川
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-28
得分:0 
那不就是我用的方法嘛。。。。
这样还可以把输入循环也整合进去

2007-05-01 21:50
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
得分:0 
我想问大家一次循环是怎么个理解法的,是不是在程序中只能出现一个循环啊?
2007-05-01 22:15
洛川
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-28
得分:0 
额。。。
好像是,我是这么理解的

2007-05-02 15:24
梁健
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-5-19
得分:0 
#include<stdio.h>
void main()
{
    int a[10];
    int i,j,t;
    printf("please input 10 numbers: \n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    for (j=0;j<9;j++)
        for(i=0;i<9-j;i++)
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
    printf("the sorted numbers is :\n");
    for (i=0;i<10;i++)
        printf("%d",a[i]);
}
十个数字排序
2010-05-26 09:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-134745-1-1.html




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

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