Sorting algorithms/Sleep sort: Difference between revisions

→‎{{header|Objective-C}}: added dispatch_after solution
(→‎{{header|Objective-C}}: added dispatch_after solution)
Line 604:
int main(int argc, char **argv)
{
NSOperationQueue *queue = [[NSOperationQueue newalloc] init];
while (--argc) {
int i = atoi(argv[argc]);
Line 613:
}
[queue waitUntilAllOperationsAreFinished];
}</lang>
Rather than having multiple operations that sleep, we could also dispatch the tasks after a delay:
<lang objc>#import <Foundation/Foundation.h>
 
int main(int argc, char **argv)
{
while (--argc) {
int i = atoi(argv[argc]);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, i * NSEC_PER_SEC),
dispatch_get_main_queue(),
^{ NSLog(@"%d\n", i); });
}
}</lang>
 
Anonymous user