2011年5月20日金曜日

Objective-Cで"Sleep sort"

常識を覆すソートアルゴリズム!その名も"sleep sort"!
http://d.hatena.ne.jp/gfx/20110519/1305810786

Genius sorting algorithm: Sleep sort
http://dis.4chan.org/read/prog/1295544154

Objective-Cで。

- (void)somewhere {  
  NSArray* numbers = [NSArray arrayWithObjects:
                      [NSNumber numberWithFloat:1.1],
                      [NSNumber numberWithFloat:4.7],
                      [NSNumber numberWithFloat:0.9],
                      [NSNumber numberWithFloat:1.2],
                      [NSNumber numberWithFloat:7.7],
                      [NSNumber numberWithFloat:3.5],
                      [NSNumber numberWithFloat:6.9],
                      [NSNumber numberWithFloat:6.6],
                      [NSNumber numberWithFloat:9.5],
                      [NSNumber numberWithFloat:8.9],
                      [NSNumber numberWithFloat:2.5],
                      [NSNumber numberWithFloat:6.0],
                      [NSNumber numberWithFloat:9.4],
                      [NSNumber numberWithFloat:9.5],
                      [NSNumber numberWithFloat:3.5],
                      [NSNumber numberWithFloat:4.1],
                      [NSNumber numberWithFloat:1.3],
                      [NSNumber numberWithFloat:0.7],
                      [NSNumber numberWithFloat:1.4],
                      [NSNumber numberWithFloat:3.3], nil];
  
  NSLog(@"---- ↓ソート前 ----");
  
  for (NSNumber* number in numbers) {
    NSLog(@"%.1f", [number floatValue]);
    [self performSelector:@selector(sort:)
               withObject:number
               afterDelay:[number floatValue]];
  }
  
  NSLog(@"---- ↓ソート後 ----");
}

- (void)sort:(NSNumber *)number
{
  NSLog(@"%.1f", [number floatValue]);
}

ちゃんとソートされる……

1 件のコメント: