展开全部

参考代码如下,可以按需求自己修改import java.util.Date;

public class SortThread {

public static void main(String[] args) {

//产生一个随机数组

int[] ary = getArray();

//启动冒泡排序线程32313133353236313431303231363533e58685e5aeb931333332643938

new Thread(new MaoPao(ary)).start();

//启动快速排序线程

new Thread(new KuaiSu(ary)).start();

}

private static int[] getArray() {

//建议数字n不要超过1百万,十万左右就好了

int n = (int) (Math.random()*1000000)+11;

int[] ary= new int[n];

System.out.println("n的值是" + n);

for (int i = 0; i

ary[i] = (int) (Math.random()*100000);

}

return ary;

}

}

//冒泡排序

class MaoPao implements Runnable {

int[] ary;

public MaoPao(int[] ary) {

this.ary = ary;

}

@Override

public void run() {

long st = System.currentTimeMillis();

System.out.println(new Date() + "冒泡排序线程:开始执行排序");

for (int i = 0; i

for (int j = 0; j

if (ary[j]

int temp = ary[j];

ary[j] = ary[j + 1];

ary[j + 1] = temp;

}

}

}

long et = System.currentTimeMillis();

System.out.println(new Date() + "冒泡排序线程完成排序,耗费时间" + (et - st) + "毫秒");

for (int i = 0; i

System.out.println(ary[i]+" ");

}

}

}

//快速排序

class KuaiSu implements Runnable {

int[] ary;

public KuaiSu(int[] ary) {

this.ary = ary;

}

@Override

public void run() {

long st = System.currentTimeMillis();

System.out.println(new Date() + "快速排序线程:开始执行排序");

quickSort(ary, 1, ary.length);

long et = System.currentTimeMillis();

System.out.println(new Date() + "快速排序线程排序完成,耗费时间" + (et - st) + "毫秒");

for (int i = 0; i

System.out.println(ary[i]+" ");

}

}

public static int Partition(int a[], int p, int r) {

int x = a[r - 1];

int i = p - 1;

int temp;

for (int j = p; j <= r - 1; j++) {

if (a[j - 1] <= x) {

i++;

temp = a[j - 1];

a[j - 1] = a[i - 1];

a[i - 1] = temp;

}

}

temp = a[r - 1];

a[r - 1] = a[i + 1 - 1];

a[i + 1 - 1] = temp;

return i + 1;

}

public static void quickSort(int a[], int p, int r) {

if (p

int q = Partition(a, p, r);

quickSort(a, p, q - 1);

quickSort(a, q + 1, r);

}

}

}

java语言实现任何一种排序_请用java语言编写排序程序。相关推荐

  1. java中如何按名字来排序_如何在Java中对名称和年龄进行排序

    我是Java 8的新手,我只想按名称排序.但条件是:如果名称重复,则应根据年龄对其进行排序. 例如我的输入是 tarun 28 arun 29 varun 12 arun 22 并且输出应该是 aru ...

  2. java中常用的几种排序算法--常见笔试面试

    转载:http://blog.csdn.net/ygc87/article/details/7208082 以下列出Java中常用的几种排序算法,只是简单实现了排序的功能,还有待改进,望指教(以下均假 ...

  3. C语言中的几种排序算法

    C语言中的几种排序算法 在编程练习时,我们经常会遇到一些将一串乱序的数字排列成有序的数列(递增,递减)的问题,以此起到解决问题的效果.目前我使用的比较熟练的有三种排序算法,冒泡排序法,快速排序法,另外 ...

  4. java数字大小排序_怎么用java给数字排大小?

    将数字从大到小排序的方法: 例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动.此时,第一个数为数组中的最大数.然后再将第二个数与后面的数逐个比较,以次类推. ...

  5. java map按照value排序_基础:Java集合需要注意的 5 个问题

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 Java集合中的List.Set和Map作为Java集合食物链的顶级,可谓是各有千秋.本文将对于List.Set和Map之间的联系与区别进行 ...

  6. java treeset比较,java中TreeSet的两种排序比较的方式

    第一种是使得元素具有比较性 第二种是让集合具有比较性 具体代码步骤如下: import java.util.*; /* * TreeSet:可以自动对对集合中的元素进行排序 * 第一种比较方式 * 步 ...

  7. java输入长宽高计算表面积_设计一个C语言程序计算长方体体积和表面积,长宽高通过键盘输入?????...

    展开全部 # include int main (void) { double l, w, h;//定义变量62616964757a686964616fe4b893e5b19e313333656463 ...

  8. java输入长宽高计算表面积_设计一个C语言程序计算长方体体积和表面积,如何通过键盘输入长宽高?...

    展开全部 # include int main (void) { double l, w, h;//定义变量 double s, v;//定义变量 printf("please input ...

  9. java原始类型排序_海牛部落 java 系列教程:(5)数组和排序

    1 数组 数组是编程语言中最常见的的数据结构,其本身是个引用类型数据. java数组要求所有的数组元素具有相同的数据类型. 一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,数组的长度将不可变 ...

最新文章

  1. 中国新十大军工企业名单及简称 十大军工集团 原十大军工集团
  2. java最简单的并查集(不想交集合)以及杭电1272
  3. 计算机感染病毒后 一定不能清除的措施是,计算机感染病毒后,一定不能清除的措施是()。...
  4. 模式匹配 怎么匹配减号_如何使您的应用导航与用户的思维模式匹配
  5. 把一个sql where表达式转化为一个二叉树
  6. 论文笔记 | 使用GCN建模关系数据
  7. 转:改变你思维模式书
  8. 【python】TCP协议编程
  9. oracle如何查询明细账,新纪元通用账证查询打印软件常用问题解答.docx
  10. java泛型笔记2--上界通配符
  11. 构建面向异构算力的边缘计算云平台
  12. zabbix4.4 使用自动发现监测web网站健康状态(通过mysql表获取web地址)
  13. Day.js 一个轻量级的 JavaScript 时间日期处理库
  14. 今日头条后台实习生面试总结
  15. 信息学奥赛一本通 1348:【例4-9】城市公交网建设问题
  16. 亚马逊云科技的区域和可用区概念解释
  17. STM32驱动ST7789V2 tft屏幕
  18. 网页自动浏览.刷票.自动留言之登陆篇(VB)
  19. SIEVE: Secure In-Vehicle Automatic Speech Recognition Systems 论文报告
  20. linux网卡配子接口,Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) Autumn 2010....

热门文章

  1. python判断ip能否ping通_python 检查IP是否能ping通,并且分别导入两个文件
  2. linux内核循环,模仿Linux内核kfifo实现的循环缓存
  3. 树状数组区间修改和区间求和
  4. 安装go client调用Kubernetes API
  5. Asp.net WebForm使用codeFirst建立和修改数据库小结
  6. python使用minidom读写xml
  7. 设计模式笔记(15)---命令模式(行为型)
  8. C++的类型强制转换,static_cast,dynamic_cast,const_cast,reinterpret_cast
  9. MySQL5.0修改默认编码格式为UTF-8(修复MySQL中文乱码)
  10. Eclipse创建Java项目时提示Open Associated Perspective?