找回密码
 点一下
查看: 1805|回复: 15

请问一下,有什么比较好的方法直接判断数个整数哪个最大吗?

[复制链接]
发表于 2010-3-13 09:23:15 | 显示全部楼层 |阅读模式
例如整数“Z[玩家索引]”在某情况中各有增减,而按下“esc”后分别显示各个整数的数值,然后指出哪个最高,而有相等的又另外说相等,有什么办法可以做到?我暂时的想法是用循环整数动作判断,但还是有同一个数如何避免的问题,各位有什么意见吗?
发表于 2010-3-13 11:47:02 | 显示全部楼层
自己做排序算法,用多次两两比较得到最后的最大值,即使是编程语言中的算法也是这样的,没有什么高级的办法
回复

使用道具 举报

 楼主| 发表于 2010-3-13 12:55:14 | 显示全部楼层
………有显示,就是说,例如一局游戏时间结束,立刻判断整数大小宣判该局胜利者,但不知道有什么办法比较有效率……我只想到一个一个对比…
回复

使用道具 举报

 楼主| 发表于 2010-3-13 13:19:11 | 显示全部楼层
循环似乎不行啊,例如,循环1-10,z[玩家索引]是否大于z[循环整数],如果换成数字的话,z[1]是否大于z[1],出现这种情况的话,要怎么避开同一个整数?
回复

使用道具 举报

发表于 2010-3-13 13:33:14 | 显示全部楼层
设置temp=1
for 循环整数A 2 to 12, do
{
如果z[循环整数A] > z[temp] ,那么
设置temp = 循环整数A
}
到最后temp保存的就是z[]中数据最大的索引,放在这里就是玩家几了
不知道LZ说的是不是这意思。
回复

使用道具 举报

 楼主| 发表于 2010-3-13 19:26:54 | 显示全部楼层
楼上的我看了似懂非懂…

我找时间测试一遍先。
回复

使用道具 举报

发表于 2010-3-13 19:34:56 | 显示全部楼层
你可以到网上去找那些编程语言的排序算法或者取最大值的算法
回复

使用道具 举报

 楼主| 发表于 2010-3-14 00:14:56 | 显示全部楼层
根据魔动的说法,作了点修改,造出了现在的演示,确实能很好的判断哪个索引的整数最大了,但有个问题就是,在数个随机整数中存在相同整数的话,又怎么区分呢?这下我钻到牛角里了,有点想法但有想不出是加个什么条件……大家看看演示帮我看看,拜托!

最大整数.w3x

17 KB, 下载次数: 7

回复

使用道具 举报

发表于 2010-3-14 00:28:35 | 显示全部楼层
存在相同又无所谓,取最大应该只是取值,而不需要把所有值为最大的项都列出来吧
回复

使用道具 举报

 楼主| 发表于 2010-3-14 00:36:04 | 显示全部楼层
呃,上面的是问最大值存在两个以上怎么办,我已经想到办法了,由于手机上论坛问题,不知道为什么编辑不了帖子,所以就……
回复

使用道具 举报

发表于 2010-3-14 00:45:55 | 显示全部楼层
到底是要最大值还是最大项?最大值只可能有一个,值唉……
多个最大项要看你的需求了,如果要把最大的项全列出来,那么可以这样
用一个和值对应类型的变量max、一个整数变量count和一个整数数组index
假设需要判断的数组为array,有n项
[codes=jass]set i = 0
set max = array[0]
set count = 0
loop
    exitwhen i >= n
    if array > max then
        set max = array
        set count = 1
        set index[count-1] = i
    else if array == max then
        set count = count + 1
        set index[count-1] = i
    endif
    set i = i + 1
endloop[/codes]

然后index从0到count-1项就是最大项在数组的索引
回复

使用道具 举报

 楼主| 发表于 2010-3-14 00:52:15 | 显示全部楼层
呃,不是啦,说明一下,这是个击杀数的触发,时间到判断哪个数最大,然后该索引玩家为胜利者(解决),而最大值存在两个以上时设置为平局(解决),但平局的话,想做成哪个玩家和玩家玩家的击杀数相等(有待测试)。
回复

使用道具 举报

发表于 2010-3-14 00:58:37 | 显示全部楼层
……
那么在我上面发的这个思路里,count是满足最大数的个数,index是包含所有最大项索引的数组,通过这两个很容易就能得到你要的东西了
回复

使用道具 举报

 楼主| 发表于 2010-3-14 08:41:18 | 显示全部楼层
呃,其实我也算解决了,不过会用你写的测试一下,我再把演示发出来大家对比看看哪个好。
回复

使用道具 举报

发表于 2010-3-14 11:21:35 | 显示全部楼层
建议先用排序,反正你排行榜本来也要排序的不是?
然后用2分查找
回复

使用道具 举报

 楼主| 发表于 2010-3-14 15:52:20 | 显示全部楼层
Jass有些看不懂…
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-10-6 03:53 , Processed in 0.076343 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表