网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月22日漏签0天
vb吧 关注:156,080贴子:1,166,243
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 36回复贴,共1页
<<返回vb吧
>0< 加载中...

怎样写一个“猴子排序”算法

  • 只看楼主
  • 收藏

  • 回复
  • __小小小朋友
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
虽然这个算法是来搞笑的,但是还是想写来看看
主要就是把数组打乱,为了重新赋值的时候让数据不重复,就要用循环结构,那循环也太多了吧


  • 初音七奈
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
百度了一下这是个什么玩意
大概可以这么理解吧:二重循环,外层循环的结束条件是数组已经有序,内层是两个并列循环,第一个循环洗牌,第二个循环检查数组是否有序
这样来看循环并不多啊


2025-09-22 10:12:30
广告
不感兴趣
开通SVIP免广告
  • oshi001
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
厉害了


  • 初音七奈
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
for i=0 to n-1 '数据共有n个
k=int(rnd*n)
t=a(i)
a(i)=a(k)
a(k)=t
next i
洗牌算法就这么简单啊,你到底想的有多复杂?


  • 《顾名思义》
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

你自己试试吧,看看我有没有跑题
记得以前玩过单向链表,那个比这个好用


  • __小小小朋友
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上面老哥给的思路,看来是我想复杂了@miku_con


  • 333xxxyyywww33
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 333xxxyyywww33
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复楼主“ 输出尚有重复数字!!!
a = Array(5, 8, 2, 3, 7, 9, 6, 1, 0, 4)
For i = 1 To UBound(a) - 1
Do While Not a(i) < a(i + 1) '检测是否有序,如无序则进行随机数据交换
k = Int(Rnd * UBound(a) + 1)
t = a(k)
a(k) = a(i)
a(i) = t
Exit Do
Loop
Print a(i);
Next
”


2025-09-22 10:06:30
广告
不感兴趣
开通SVIP免广告
  • 333xxxyyywww33
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
miku_con:
这是按【洗牌法】思路弄的 :
Dim n As Integer
Dim a(9) As Integer
n = 10
For i = 0 To n - 1 '数据共有n个
a(i) = i
k = Int(Rnd * n)
a(k) = k
t = a(i)
a(i) = a(k)
a(k) = t
Print a(i);
Next i
结果输出有多个数字重复! 问题何在??


  • __小小小朋友
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你写的洗牌算法主要问题和你发的前几张图一样,把数组赋值、数组排列(洗牌),和数组输出这三部分要分开写,不要写在同一个循环里。
如果三部分写在一起,赋值还没完成,刚给a(0)赋了值,就开始洗牌了,当然会出问题。
还有,你的排列部分a(k)=k这一句把数据打乱了,也会出现重复值。


  • __小小小朋友
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
收5楼小吧用listbox暂时储存数组的启发,写出了下面两个将数组变为乱序的算法



  • 333xxxyyywww33
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 36回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示