プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

sleep sort - Javaで実装してみた(笑)

TwitterのTLで知ったのだが、少し前に海外の掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。

http://d.hatena.ne.jp/gfx/20110519/1305810786


なんて斬新な発想!


というわけで、私もさっそくJavaで実装してみました。Javaなかったみたいなので。

/** sleep sort */
public class SleepSort {
    /** main */
    public static void main(String args[])
    {
        if (args.length <= 0) return;

        int[] values = new int[args.length];

        for (int i = 0; i < values.length; i++) {
            values[i] = Integer.valueOf(args[i]);
        }

        sleepSort(values);
    }

    /** sleepSort */
    private static void sleepSort(int[] values) {
        class SleepSortThread extends Thread {

            private int waitTime;
            
            public SleepSortThread(int waitTime) {
                this.waitTime = waitTime;
            }
            
            public void start() {
                super.start();
            }
            
            public void run() {
                try {
                    Thread.sleep(waitTime * 1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                }
                System.out.println(Integer.toString(waitTime));
            }
        }
        
        for (int i = 0; i < values.length; i++) {
            SleepSortThread thread = new SleepSortThread(values[i]);
            thread.start();
        }
    }
}


実用性とか、ツッコミどころは多々あるかと思うけど、こういう発想って大事だと思う。


何より笑える:)