Java排序算法之SleepSort排序示例
本文实例讲述了Java排序算法之SleepSort排序。分享给大家供大家参考,具体如下:
分享一个很有创意的排序算法:sleepSort 。巧妙利用了线程的sleep(),代码如下:
public class SleepSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] ints = {1,4,7,3,8,9,2,6,5}; SortThread[] sortThreads = new SortThread[ints.length]; for(int i=0;i<sortThreads.length;i++) { sortThreads[i] = new SortThread(ints[i]); } for(int i=0;i<sortThreads.length;i++) { sortThreads[i].start(); } } } class SortThread extends Thread { int ms = 0; public SortThread(int ms) { this.ms = ms; } public void run() { try { sleep(ms*10+10); } catch(InterruptedException e) { e.printStackTrace(); } System.out.println(ms); } }
希望本文所述对大家java程序设计有所帮助。
相关推荐
-
详解java线程的开始、暂停、继续
Android项目中的一个需求:通过线程读取文件内容,并且可以控制线程的开始.暂停.继续,来控制读文件.在此记录下. 直接在主线程中,通过wait.notify.notifyAll去控制读文件的线程(子线程),报错:java.lang.IllegalMonitorStateException. 需要注意的几个问题: 任何一个时刻,对象的控制权(monitor)只能被一个线程拥有. 无论是执行对象的wait.notify还是notifyAll方法,必须保证当前运行的线程取得了该对象的控制权(mon
-
Java RandomAccessFile 指定位置实现文件读取与写入
Java RandomAccessFile 指定位置实现文件读取与写入 RandomAccessFile是属于随机读取类,是可以对文件本身的内容直接随机进行操作的,可以在文件的指定位置的读取和写入内容,这在很多时候都是很方便的. RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.但是该类仅限于操作文件. RandomAccessFile不属于InputStream和Out
-
Java实现随机验证码具体代码
本文实例为大家分享了Java随机生成验证码的具体代码,供大家参考,具体内容如下 import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.serv
-
java设计模式之装饰器模式(Decorator)
概述 装饰模式是对客户端以透明的方式扩展对象的功能,是继承关系的一个替代方案.也就是说,客户端并不会觉得对象在装饰前和装饰后有什么不同,装饰模式可以在不用创造更多子类的情况下,将对象的功能加以扩展,装饰模式的关键在于这种扩展是完全透明的. 模式的结构 UML类图: 装饰模式中的类角色: 抽象构件角色(Project):给出一个接口,以规范准备接收附加责任的对象 具体构件角色(Employe):定义一个将要接收附加责任的类 装饰角色(Manager):持有一个构件对象的实例,并定义一个与抽象构件接
-
javascript使用递归算法求两个数字组合功能示例
本文实例讲述了javascript使用递归算法求两个数字组合功能.分享给大家供大家参考,具体如下: // 12 ,3,4 两个数字组合 最后结果 应该是 // 13 // 14 // 23 // 24 // 34 // 这5种 用程序 怎么算出来 // 是求组合的算法 // var arr = [12, 3, 4]; // var len = arr.length; // var result = []; // for (var i = 0; i < len; i++) { // for (va
-
Java实现复杂的进制转换器功能示例
本文实例讲述了Java实现复杂的进制转换器功能.分享给大家供大家参考,具体如下: 这是用java写的进制转换器,包括10.2.8.16进制之间共12种的相互转换.输入一个要转换的数之后,按提示选择所采用的转换方式,输出转换的结果. 注:新上传的文件是在此前代码(下面的3. 原java代码)的基础上做了改进,能更好地实现封装. 1. SystemConvert.java package day8; import java.util.Scanner; public class SystemConve
-
java 中HashMap、HashSet、TreeMap、TreeSet判断元素相同的几种方法比较
java 中HashMap.HashSet.TreeMap.TreeSet判断元素相同的几种方法比较 1.1 HashMap 先来看一下HashMap里面是怎么存放元素的.Map里面存放的每一个元素都是key-value这样的键值对,而且都是通过put方法进行添加的,而且相同的key在Map中只会有一个与之关联的value存在.put方法在Map中的定义如下. V put(K key, V value); 它用来存放key-value这样的一个键值对,返回值是key在Map中存放的旧va
-
Java RandomAccessFile的用法详解
RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.但是该类仅限于操作文件. RandomAccessFile不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和 DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个类系毫
-
java设计模式之适配器模式(Adapter)
概述 将一个类的接口转换成用户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 两种实现方式 1.类的适配器模式: 2.对象的适配器模式: 类的适配器模式的UML图,如下: 类的适配器模式把适配的类的API转换成为目标类的API. 上图设计的角色有: 目标角色(Target):这就是所期待得到的接口. 源角色(Adapee):现在需要适配的接口. 适配器角色(Adapter):是本模式的核心,适配器把源接口转换成目标接口. 代码示例: inter
-
java使用randomaccessfile在文件任意位置写入数据
复制代码 代码如下: import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.RandomAccessFile; public class InsertContent { public static void insert(String fileName, long pos, String inse
随机推荐
- JavaEE在线人数管理系统
- 20款效果非常棒的 jQuery 插件小结分享
- Windows 2000/XP 下巧拒强行关机的方法
- Java中的length和length()深入分析
- IOS实现上滑隐藏NvaigtionBar而下拉则显示效果
- Objective-C实现冒泡排序算法的简单示例
- python算法学习之桶排序算法实例(分块排序)
- js利用clipboardData实现截屏粘贴功能
- JS焦点图,JS 多个页面放多个焦点图的实例
- asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
- python遍历类中所有成员的方法
- php使用curl并发减少后端访问时间的方法分析
- AJAX初级教程之初识AJAX
- Mysql优化调优中两个重要参数table_cache和key_buffer
- Python导入txt数据到mysql的方法
- jQuery模板技术和数据绑定实现代码
- C++带有指针成员的类处理方式详解
- c#中文转unicode字符示例分享
- JS实现的自定义显示加载等待图片插件(loading.gif)
- 图解程序员必须掌握的Java常用8大排序算法