| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5492 人关注过本帖
标题:判断6个数互不相等!!(给出源代码谢谢)
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
恩,明白了。
随机化二叉排序树是为了保证平衡么?是不是写起来比AVL或者SBT简单?所谓的“随机化二叉排序树”是不是就是Treap?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-08 11:59
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-7-8 11:59 的发言:[/bo]

恩,明白了。
随机化二叉排序树是为了保证平衡么?是不是写起来比AVL或者SBT简单?所谓的“随机化二叉排序树”是不是就是Treap?


比红黑树那些写起来短
这个是treap的资料:[url=http://baike.baidu.com/view/956602.htm]http://baike.baidu.com/view/956602.htm[/url]
我说的随机化二叉排序树不是treap,而是考虑到可能出现特殊数据,而先对原数据打乱顺序,然后构造bst.我的打乱方法很简单,设数据规模为n,生成n个随机数(在n和0间,然后,每生成两个随机数,对这两个随机数所对应的变量进行交换,这样就可以较好的打乱顺序了。或者用一个quicksearch找一个中位数作为根,不过后者效率较低(虽然都是O(N),但是后者虽然找到了中位数,但对于特殊数据,数据的特殊性没有被打破)。这样,和quicksort类似,出现退化为链的可能性为2/n!,可以忽略掉
treap的代码长度一般比红黑树能少10行左右(参见野牛的测试),不过由于treap实现仍然需要旋转等操作,所以还是不好写。
由于对于这个题,不需要删除,只要插入和查找操作就可以了,所以,用以上方法,可以生成比较平衡的bst,所以这个个简单的方法(算法导论上好像提到过)可以较好的完成。

[[it] 本帖最后由 卧龙孔明 于 2008-7-8 12:24 编辑 [/it]]

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-07-08 12:22
coming
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2008-4-20
收藏
得分:0 
是啊 写出来容易不过算法好就不容易了,都是高手~~加油学习
2008-07-08 12:36
菜鸟选手
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2008-5-5
收藏
得分:0 
把6个元素丢入桶中,然后统计桶内元素的个数...
 解决了 0(n)...
   

算法学习群57909089
2008-07-08 13:28
菜鸟选手
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2008-5-5
收藏
得分:0 
随机化二叉排序树
clrs上有 ..

算法学习群57909089
2008-07-08 13:29
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
[bo][un]菜鸟选手[/un] 在 2008-7-8 13:28 的发言:[/bo]

把6个元素丢入桶中,然后统计桶内元素的个数...
解决了 0(n)...
   

这6个数是int规模的,桶要多大?
这6个数是long long规模的,桶要多大?
这6个数是double规模的,桶要怎么设计?

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-07-08 14:12
菜鸟选手
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2008-5-5
收藏
得分:0 
那hash吧..

[[it] 本帖最后由 菜鸟选手 于 2008-7-8 14:51 编辑 [/it]]

算法学习群57909089
2008-07-08 14:49
a383369542
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-7-8
收藏
得分:0 
程序我们注重思想,数据库我们注重原理,生活我们注重感情。07级程序&&数据库QQ交流群48335578,欢迎志士的加入
2008-07-08 15:37
菜鸟选手
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2008-5-5
收藏
得分:0 
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include <iostream>
#include <climits>
#include <map>
using namespace std;

int main(){
   
int A[6]={0,INT_MAX,2,3,4,INT_MAX};
    map<int,string>MyMap;
    for(int i=0;i<6;++i)
    {
        
if(MyMap[A[i]]=="First")
            MyMap[A[i]]="Second";
        else MyMap[A[i]]="First";
    }
   
int flag=0;
    for(int j=0;j<6;++j)
        if(MyMap[A[j]]=="Second")
        {
            
flag=1;
            break;
        }
   
flag?cout<<"Yes.\n":cout<<"No.\n";
    return 0;
}

.....!

[[it] 本帖最后由 菜鸟选手 于 2008-7-8 15:58 编辑 [/it]]

算法学习群57909089
2008-07-08 15:45
a383369542
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-7-8
收藏
得分:0 
程序我们注重思想,数据库我们注重原理,生活我们注重感情。07级程序&&数据库QQ交流群48335578,欢迎志士的加入
2008-07-08 16:03
快速回复:判断6个数互不相等!!(给出源代码谢谢)
数据加载中...
 
   



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

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