| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5098 人关注过本帖, 1 人收藏
标题:JZ_ZCCZ 进来PK ,想做题目的也可以看看 【我对这里的人有点失望了,菜鸟的天 ...
只看楼主 加入收藏
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
提示: 该帖被管理员或版主屏蔽
2010-03-01 14:25
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
提醒一下大家,讨论归讨论,或者言辞有些偏激都可以理解.但请不要人身攻击,或者说脏话.


谢谢大家,请维护好论坛的日常秩序.
2010-03-01 14:30
sainimu78
Rank: 2
等 级:论坛游民
帖 子:57
专家分:26
注 册:2010-1-27
收藏
得分:0 
我真的很想知道。我跪求了。可怜可怜我吧。我真的没有别的办法来解决我的疑问。。我在这给各位跪下了。。在O(N)的时间,O(1)的空间里面找到第K大的数,。。。我问一下哦 O(N) 和 O(1) 是什么意思。。第k大的数。是什么样的数。?。我没猜错的话k应该是个整型变量吧。索性我就用数字100来假设。。假设k为100。将100代入原句。即。第100大的数。。第100是序数。含义为第100个某某。 第100个大的数。。倒底是怎样的一种数呢。求解
2010-03-01 15:09
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
1,0(N)和0(1)是时间复杂度和空间复杂度,上网搜一下;
2,第K大的数,就是找序列号为K的数.

    举例,有这样 5 个数,原来是没排序的,经过排序后为 2,3,4,5,6.现在要找到第 3 大的数,也就是说 K=3,那么这个数值为 4 .

    但如果经过快排,显然时间复杂度要比楼主要求的要高,所以,只有利用快排的特性,找到第 K 大的数.《算法导论》第 108 页有详细论述。
2010-03-01 15:28
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
----------------------------------------------------------------------------
我等代码等了很久了 ...          ~~~O(n)~~~
----------------------------------------------------------------------------
2010-03-01 16:17
JZ_ZCCZ
Rank: 2
等 级:论坛游民
帖 子:17
专家分:17
注 册:2010-2-25
收藏
得分:0 
以下是引用Devil_W在2010-3-1 13:00:18的发言:


我早就看出你什么水平了。

不必show你的 代码了,没人看。
请问下我这个是 先建立一个单链表再赋值,最后用一个函数求最小值返回这点有没有问题?
至于满足你的复杂度,我还没考虑!
2010-03-01 21:00
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 36楼 JZ_ZCCZ
不是求最小值,而是求第 K 位数.
2010-03-01 21:45
浅墨
Rank: 2
等 级:论坛游民
帖 子:18
专家分:53
注 册:2010-2-6
收藏
得分:0 
假设已经建立存好数据的带头结点单链表  

int find_k(link *head, int k)
{
    link *pos = head->next, *pos_k;
    int i = k, tmp;
   
    while (k--)
    {
        if ((pos->num) > (pos->next->num))
            {
                tmp = pos->num;
                pos->num = pos->next->num;
                pos->next->num = tmp;
            }
        pos = pos->next;
    }
    pos_k = pos;
   
    while (pos)
    {   
        if ((pos->num) < (pos_k->num))
            pos_k->num = pos->num;
        pos = pos->next;
    }
   
    return pos_k->num;
}

不知道满足楼主意思不 我是菜鸟
2010-03-01 23:46
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
算法都出来了


怎么就没有个人能给我个我看的上眼的代码。。。


诶。。。
2010-03-02 11:07
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
怎么才能让我不对你们绝望?
2010-03-02 22:10
快速回复:JZ_ZCCZ 进来PK ,想做题目的也可以看看 【我对这里的人有点失望了,菜 ...
数据加载中...
 
   



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

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