| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3331 人关注过本帖
标题:Bogo排序,(相信运气吗?)
只看楼主 加入收藏
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
收藏
已结贴  问题点数:1 回复次数:9 
Bogo排序,(相信运气吗?)
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void bogo_sort(int *, int, int);

void shuffle(int *, int);

int in_order(int *, int);

int main(void) {
    int array[5], i;
    for(i = 0; i < 5; i++)
        scanf("%d", array + i);
    bogo_sort(array, 0, 4);
    for(i = 0; i < 5; i++)
        printf("%d ", array[i]);
    return 0;
}

void bogo_sort(int * data, int begin, int end) {
    while(!in_order(data, end - begin)) {
        shuffle(data, end - begin);
    }
}

void shuffle(int * data, int size) {
    int i, temp;
    srand((unsigned)time(NULL));
    for(i = 0; i <= size; i++) {
        int index = rand() % (size + 1);
        temp = data[i];
        data[i] = data[index];
        data[index] = temp;
    }
}

int in_order(int * data, int size) {
    int i;
    for(i = 0; i < size; i++)
        if(data[i] > data[i + 1])
            return 0;
    return 1;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


这种排序的算法就是,有一只猴子把n个卡片扔向天空,掉下如果排列恰好,则说明排序成功,呵呵。我试了试,运气还不错,1秒左右就好了,大家也可以去试试,如果长时间还没好,就说明你人品差啦,去烧点香。呵呵


[ 本帖最后由 lz1091914999 于 2011-7-4 20:00 编辑 ]
2011-06-10 21:27
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:1 
楼主搞 100 个数字试试人品~嘿嘿
楼主还可以用这个东西搞个赌博,赌徒们先下注,然后每个赌徒用相同的数据开始 bogo,谁先排好谁就拿走桌上的赌资~
就像魔兽的搂点~

[ 本帖最后由 voidx 于 2011-6-10 21:40 编辑 ]
2011-06-10 21:38
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 2楼 voidx
呵呵,结果和时间有关。

My life is brilliant
2011-06-11 07:58
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
大家可以搞10000个测试一下人品。如果运气很好,你可以去买彩票了。
2011-06-11 08:29
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 4楼 hjywyj
我改了改用了10个数,等了很久都没出答案。

My life is brilliant
2011-06-11 09:16
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
人品问题  对呀

                                         
===========深入<----------------->浅出============
2011-06-11 11:02
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
收藏
得分:0 
五个数,一分钟左右。。。不知道算不算慢了,,我觉得挺慢。
2011-06-11 11:09
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 7楼 bccn_2012
纯粹是写来玩玩的,呵呵。

My life is brilliant
2011-06-11 15:25
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 4楼 hjywyj
这个真的就要靠人品了。
10000个,10000! = ? 我哩个娘啊
2011-06-11 18:20
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
学习!!!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-11 18:26
快速回复:Bogo排序,(相信运气吗?)
数据加载中...
 
   



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

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