gpt4 book ai didi

objective-c - 如何随机化 NSArray?

转载 作者:行者123 更新时间:2023-12-03 07:02:56 24 4
gpt4 key购买 nike

假设我有一个 NSArray,里面有 50-100 个对象。如何将数组按随机顺序排列?

最佳答案

有很多方法可以做到这一点,但大多数只涉及生成随机数。也许您可以通过 NSMutableArray 使用此技术:

  1. 生成 0 到 49 之间的随机数(假设有 50 个元素)
  2. 交换元素 0 和您生成的任何数字
  3. 生成 1 到 49 之间的随机数
  4. 交换元素 1 和您生成的任何数字
  5. 等等

这可能是最有效的方法。

示例代码(未测试):

srandom(time(NULL));
for (NSInteger x = 0; x < [array count]; x++) {
NSInteger randInt = (random() % ([array count] - x)) + x;
[array exchangeObjectAtIndex:x withObjectAtIndex:randInt];
}

此外,您可以使用两个 NSMutableArray 对象,并在第一个对象有对象时简单地循环,随机选择一个对象,并将其添加到另一个对象的末尾。不过就地方法可能更快。

关于objective-c - 如何随机化 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com