最脑残的排序算法——睡眠排序,面试官你先去睡一觉,醒来就好了

2,464 阅读1分钟
package com.sleep;
public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 9, 2, 8, 8, 3, 6, 4, 5, 7};
        for (int i1 : arr) {
            new SleepThread(i1).start();
        }
    }
}class SleepThread extends Thread {
    private int number;
    SleepThread(int number) {
        this.number = number;
    }
    @Override
    public void run() {
        try {
            Thread.sleep(number * 500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(number + "");
    }
}

最脑残的排序算法——睡眠排序,面试官你先去睡一觉,醒来就好了

这里*500毫秒,方便看过程,如果数大一点,嗯…就像标题写的那样了

睡眠排序虽然挺有意思,但是没有任何实际价值,它的缺点简直不要太多……

启动大量线程的资源消耗姑且不说,数值接近的元素也未必能按顺序输出,而且一旦遇到很大的元素,线程睡眠时间可能会超过一个月……