NSArrayの中身をシャッフルしたい 2012/08/05

NSArrayの中身をシャッフルしたいということで、カテゴリを使って、機能の拡張を行ってます。

コード自体はスタックオバーフローにのってたやつです。何やら、

Fisher–Yates shuffle

ってものらしいです。まだためしてないから自信ないですが



#import "NSMutableArray+Ext.h"

@implementation NSMutableArray (Ext)

- (void)shuffle
{
   
    for (uint i = 0; i < self.count; ++i)
    {
        int nElements = self.count - i;
        int n = arc4random_uniform(nElements) + i;
        [self exchangeObjectAtIndex:i withObjectAtIndex:n];
    }

}


@end

: