Power set: Difference between revisions

m
Fix language name, sort order and <lang> tag for Objective-C.
(→‎{{header|C}}: removed second method: does the same thing, except in a convoluted and inefficient way)
m (Fix language name, sort order and <lang> tag for Objective-C.)
Line 1,009:
 
{1x0 cell} {1x1 cell} {1x1 cell} {1x2 cell} %This is the same as { {},{{1,2}},{3},{{1,2},3} }</lang>
 
=={{header|ObjObjective-C}}==
<lang objc>#import <Foundation/Foundation.h>
 
+ (NSArray *)powerSetForArray:(NSArray *)array {
UInt32 subsetCount = (UInt32)exp2(array.count);
NSMutableArray *subsets = [NSMutableArray arrayWithCapacity:subsetCount];
for(int subsetIndex = 0; subsetIndex < subsetCount; subsetIndex++) {
NSMutableArray *subset = [[NSMutableArray alloc] init];
for (int itemIndex = 0; itemIndex < array.count; itemIndex++) {
if((subsetIndex >> itemIndex) & 0x1) {
[subset addObject:[array objectAtIndex:itemIndex]];
}
}
[subsets insertObject:subset atIndex:subsetIndex];
[subset release];
}
return subsets;
}</lang>
 
=={{header|OCaml}}==
Line 1,034 ⟶ 1,053:
version for lists:
<lang ocaml>let subsets xs = List.fold_right (fun x rest -> rest @ List.map (fun ys -> x::ys) rest) xs [[]]</lang>
 
=={{header|Obj-C}}==
<lang obj-c>
#import <Foundation/Foundation.h>
 
+ (NSArray *)powerSetForArray:(NSArray *)array {
UInt32 subsetCount = (UInt32)exp2(array.count);
NSMutableArray *subsets = [NSMutableArray arrayWithCapacity:subsetCount];
for(int subsetIndex = 0; subsetIndex < subsetCount; subsetIndex++) {
NSMutableArray *subset = [[NSMutableArray alloc] init];
for (int itemIndex = 0; itemIndex < array.count; itemIndex++) {
if((subsetIndex >> itemIndex) & 0x1) {
[subset addObject:[array objectAtIndex:itemIndex]];
}
}
[subsets insertObject:subset atIndex:subsetIndex];
[subset release];
}
return subsets;
}
</lang>
 
=={{header|Oz}}==
Anonymous user