C中的混频数组

C中的混频数组

我正在寻找ANSI C中的一个函数,它可以像PHP的那样随机化数组shuffle()的确如此。有这样的函数吗?还是我必须自己写?如果我必须自己写,什么是最好的/最有表现力的方法呢?

到目前为止,我的想法是:

  • 对数组进行100次迭代,并将一个随机索引与另一个随机索引进行交换。
  • 创建一个新数组,并在第一个数组中填充随机索引,每次检查索引是否已经采用(性能=0复杂性=严重)


慕慕森
浏览 405回答 3
3回答

噜噜哒

C标准中没有随机化数组的函数。看看Knuth-他有这份工作的算法。或者看看本特利程序珍珠或者更多的程序珍珠。或者看看几乎所有的算法书。确保公平的洗牌(原始顺序的每一个排列都是同样可能的)是简单的,但不是微不足道的。
打开App,查看更多内容
随时随地看视频慕课网APP