学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

求 算法

字符数组?直接桶排吧……O(n)已经很省时间了……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

引用:
以下是引用 StarWing83 在 2008-5-2 23:43 的发言:

那道题是说缺一个数嘛……如果是1~n有且只有一对相同的话,和缺一个数字不是一样么……
看清楚是什么时间复杂度

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

??我看看…………

orz……O(n)的算我找到了一种……光记算法了,没注意看分析……倒……

[ 本帖最后由 StarWing83 于 2008-5-2 23:49 编辑 ]
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

我只学到C的指针数组..你们说的我不明白,还是要谢谢.
<接受者>? or <创造者>?

TOP

啊啊啊啊啊啊啊啊

TOP

yuki 的胸襟令人感慨!必成大器!
九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东

TOP

桶排 !

TOP

回复 36# 的帖子

这是C#的写法

TOP

瞎说,c#的指针可以放在unsafe外面么……
明明是C++的写法嘛……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

复制内容到剪贴板
代码:
/***************************************************************************

                呵呵,终于把它作出来了,虽然简陋些,算法也很普通,
            但终究是自己的作品,也达到了楼主的要求,也通俗易懂。
            如有不对的地方,希望大家指出来,谢谢。

               也不知道我的这个时间复杂度是多少呢?

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                今天发生了很不好的事情,但对于我也许是种激励。因为虽然
            听到了很偏激的声音,说明我平时做得很不好,有许多不足之处。
            但也看到了许多支持我、鼓励我的朋友。

                在此谢过众位了,对我有好感的,对我厌恶的。都谢谢了。
***************************************************************************/
#include<stdio.h>
#include<string.h>
#define N 10000
void px(char a[],int n)
{
        char c;
        int i,j;
        for(i=0;i<n;++i)
                for(j=i+1;j<n;++j)
                        if(a[i]<a[j])
                        {
                                c=a[i];
                                a[i]=a[j];
                                a[j]=c;
                        }
}
int main(void)
{
        char a[N];/*用于输入待检查的数据*/
        int i,j,n,k;
        printf("下面输入数据,enter结束输入:\n");
        gets(a);     /*输入数据*/
        n=strlen(a);
        px(a,n);    /*排序*/
        puts(a);
        for(i=0;i<n;++i)
        {
                k=0;
                for(j=i;j<n;++j)
                        if(i!=j&&a[i]==a[j])  /*当遇到相同数据时*/
                        {
                                ++i;
                                ++k;
                        }
                if(k>0)                /*当k值大于0,说明有相同数据,并输出*/
                        printf("\n共有%d个相同的%c.\n",k+1,a[i]);
        }
        if(k==0)     /* 当k值为0时,说明没有相同数据。*/
                printf("没有相同的数据.\n");

        system("pause");
        return 0;
}

TOP

发新话题