1. 程式人生 > >OC中的組合演算法 從N個數裡面取M個數的組合

OC中的組合演算法 從N個數裡面取M個數的組合

- (void)newCaculateSort{
    [self combination:9 in:4];
}

- (void)combination:(int)n in:(int)m{
    if (m == 0) {
        [_resultArray addObject:[NSArray arrayWithArray:_tempArray]];
        return;
    }
    for (int i = n; i >= m ; --i) {
        [_tempArray replaceObjectAtIndex:m-1 withObject:[_dataArray objectAtIndex:i-1]];
        [self combination:i-1 in:m-1];
    }
}