逗比的睡眠排序大法

睡眠排序也就是,让排序的元素当做线程sleep睡眠的时间,睡醒就输出~

元素越大,醒的越晚,输出的越晚,然后排序不就完成了?

package com.lean;

public class SleepSort {
	/*
	 * 数组中元素越大的值,sleep时间越长。sleep时间短的先输出
	 * 囧,排序的实际意义并不太大,时间太长了。乐乐就行了啊
	 */
    public static void main(String[] args) {
       int a[]={5,6,7,1,3,2,4,9,8};
       //创建睡眠线程
       SortThread t[]=new SortThread[a.length];
       //初始化睡眠线程
       for (int i = 0; i < t.length; i++) {
		t[i]=new SortThread(a[i]);
		t[i].start();
	}
}
}
//sortThread是一个动态类,当做内部类的时候,加上static。否则放到作为外部类~~哈
class SortThread extends Thread{
	int ms;
	public SortThread(int ms){
		this.ms=ms;
	}
	@Override
	public void run() {
		super.run();
		try {
			sleep(ms*10+10);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(ms);

	}

}
时间: 2024-08-27 02:53:23

逗比的睡眠排序大法的相关文章

睡眠排序

二半夜的有点失眠,来个睡眠排序 -_-|| #include <iostream> #include <thread> #include <windows.h> #include <vector> using namespace std; void delay(int a) { Sleep(a); cout << a <<" "; } int main() { int a[10] = { 30, 45, 23, 1

js 睡眠排序

话说就要去面试了,又话说面试必考排序算法,所以...代码如下: var arr=[4,2,7,5,6,0,8]; var sleepSort=function(arr,callback){ let res=[]; arr.forEach(item=>{ setTimeout(()=>{ res.push(item) // 如果执行完毕,回调 if(res.length===arr.length) callback(res); },item) }); } sleepSort(arr,res=&g

Leetcode刷题记(8)——删除排序数组中的重复项

搬运工~ 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素.解题思路:题目中一再强调在原地删除,也就是说不希望使用新的内存空间,在原数组上进行操作,很自然就要想到“引用”,因为引用

Java多线程与并发库高级应用 学习笔记 10-16课

Callable与Future的介绍 package Thread; import java.util.Random; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorCompletionService; im

Java成神之路技术整理(长期更新)

以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 Java基础篇 8张图带你轻松温习 Java 知识 Java父类强制转换子类原则 一张图搞清楚 Java 异常机制 通用唯一标识码UUID的介绍及使用 字符串拼接 + 和 concat 的区别 Java趣味分享:try/finally 关于Java序列化你应该知道

scarletthln 关于算法的一点总结

1. 分解问题的角度: fix 某一维度,尝试另一维度上的所有可能   a. 可能是array的(i, j)pointers, b. 可能是矩形的长与宽, c. 可能是tree的每一个subtree, d. 可能是情景题的每一对pair...2. 求所有解的, 暴力上backtracking吧3. 如果问最短/最少的, 先想BFS.DP这对好基友:忘了bfs了4. 如果环相关/重复访问, DFS + visited state雄起:忘了visited了5. 如果问连通性, 静态靠DFS/BFS,

Java成神之路技术整理

关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 Java基础篇 8张图带你轻松温习 Java 知识 Java父类强制转换子类原则 一张图搞清楚 Java 异常机制 通用唯一标识码UUID的介绍及使用 字符串拼接 + 和 concat 的区别 Java趣味分享:try/finally 关于Java序列化你应该知道的一切 为什么 byte 取值 -1

你见过哪些要命的奇葩代码?程序员:太多了!

毕竟大家都有刚入门的时候 难免会做成这样的事情 多多体谅就挺好 毕竟 获取明天的日期的正确打开方式 public static DateTime getTomorrowDate() { Thread.Sleep(24*60*60*1000); return DateTime.Now; } 写了个很牛逼的SQL 说出来自己都不敢相信 写了十几个嵌套if 看起来还觉得很漂亮 高端大气上档次的 定义了一个常量 public static final int ONE = 1 public static

高校挑战赛:观看世界杯--限制排序算法

试题来源:http://student.csdn.net/mcs/programming_challenges?&page=1  观看世界杯 以前在学校参加每年的ACM程序设计大赛,感觉程序算法还是挺有意思的,这两天发现一个网站上放出一些算法试题,有点当年的那种心情,看到了,感觉能干掉,那就干掉它.目前还在公司守夜中,闲着没事就试了试算法题. 速手打,没有详细检查,可能有瑕疵请见谅,但是读题.解题.算法设计,一个不少. if(type == 1){...} 这段里,虽然写的有点小复杂,但是是个简