没有合适的资源?快使用搜索试试~ 我知道了~
计算机专业一些常见排序方法的算法实现
5星 · 超过95%的资源 需积分: 10 1 下载量 118 浏览量
2013-04-15
16:02:52
上传
评论
收藏 27KB DOCX 举报
温馨提示
试读
17页
功能:实现各种排序算法:冒泡排序、选择排序、堆排序、插入排序、希尔排序、快速排序、二叉树排序、归并排序
资源推荐
资源详情
资源评论
package com.soke.demo7;
import java.ul.Date;
//创建一个排序的类,把各种排序共有的属性和方法抽象出来作为其成员属性和方法封装成
排序的类
public class Sort {
/**
* 作者:麦子(soke 工作室)
* 功能:实现各种排序算法:冒泡排序、选择排序、堆排序、插入排序、希尔排序、
快速排序、二叉树排序、归并排序
*
*******************************************************************************
*****************
* 注:在这毕业季,结合自己考研过程对数据结构复习时的理解和 java 的编程基础写
出这个排序类,仅供参考.
* 因为一些稍微上档次的公司笔试、面试基本上会都会问到,故为大家写了个总版本.在
高手面前班门弄斧了
* 语言采用的 java,排序为升序排列,全部采用面向对象的编程思想
* 本文中所采用的数据结构和算法都是个人思路,可能您有更好的数据结构和算法
*
*******************************************************************************
****************
*/
public stac void main(String[] args) {
int len=100000;
int[] arra=new int[len];int[] arrb=new int[len];
int[] arrc=new int[len];int[] arrd=new int[len];
int[] arre=new int[len];int[] arrf=new int[len];
int[] arrg=new int[len];
for(int i=0;i<len;i++){
int t=(int)(Math.random()*100);
arra[i]=t;arrb[i]=t;arrc[i]=t;
arrd[i]=t;arre[i]=t;arrf[i]=t;
arrg[i]=t;
}
/* for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println(); */
//多态的体现,都可以用一个 sort 对象的 sort 方法来处理,jvm 可自行解析是哪一个
对象的 sort 方法
/* Sort sort = new Bubble();
sort.sort(arra); */
/* Sort sort = new Selecon();
sort.sort(arra); */
/* Sort sort = new Stack();
sort.sort(arra); */
/* Sort sort = new Inseron();
sort.sort(arra); */
/* Sort sort = new Shell();
sort.sort(arra); */
/* Sort sort = new QuickSort();
sort.sort(arra,arra.length-1); */
/* Sort sort = new BinaryTree();
sort.sort(arra); */
/* Sort sort = new Merger();
sort.sort(arra); */
Sort sort0 = new Bubble();
Date date14 = new Date();//Data 类的使用方法请自行查看 API,这里我选取了其
getTime()方法
long a14 = date14.getTime();
sort0.sort(arra);
Date date15 = new Date();
long a15 = date15.getTime();
System.out.println("冒泡排序用时:"+(a15-a14)+"毫秒");
Sort sort1 = new Selecon();
Date date0 = new Date();//Data 类的使用方法请自行查看 API,这里我选取了其
getTime()方法
long a0 = date0.getTime();
sort1.sort(arra);
Date date1 = new Date();
long a1 = date1.getTime();
System.out.println("选择排序用时:"+(a1-a0)+"毫秒");
Sort sort2 = new Stack();
Date date2 = new Date();
long a2 = date2.getTime();
sort2.sort(arrb);
Date date3 = new Date();
long a3 = date3.getTime();
System.out.println("堆排序用时:"+(a3-a2)+"毫秒");
Sort sort3 = new Inseron();
Date date4 = new Date();
long a4 = date4.getTime();
sort3.sort(arrc);
Date date5 = new Date();
long a5 = date5.getTime();
System.out.println("插入排序用时:"+(a5-a4)+"毫秒");
Sort sort4 = new Shell();
Date date6 = new Date();
long a6 = date6.getTime();
sort4.sort(arrd);
Date date7 = new Date();
long a7 = date7.getTime();
System.out.println("希尔排序用时:"+(a7-a6)+"毫秒");
Sort sort5 = new QuickSort();
Date date8 = new Date();
long a8 = date8.getTime();
sort5.sort(arre,0,arre.length-1);
Date date9 = new Date();
long a9 = date9.getTime();
System.out.println("快速排序用时:"+(a9-a8)+"毫秒");
Sort sort6 = new BinaryTree();
Date date10 = new Date();
long a10 = date10.getTime();
sort6.sort(arrf);
Date date11 = new Date();
long a11 = date11.getTime();
System.out.println("二叉树排序用时:"+(a11-a10)+"毫秒");
Sort sort7 = new Merger();;
Date date12 = new Date();
long a12 = date12.getTime();
sort7.sort(arrg);
Date date13 = new Date();
long a13 = date13.getTime();
System.out.println("归并排序用时:"+(a13-a12)+"毫秒");
/* 本程序中如果子类中没有重载或重写打印方法时,便都可采用下面的 for 循环来
打印,
* 由于采用的是引用传递,故 arr 中元素的顺序已然发生变化
* 特别注意当上面的 len 较大时,就不要打印了,这个相当耗时,而且
* 有可能会造成死机现象
剩余16页未读,继续阅读
资源评论
- genyufeixiang2013-09-28很好,每种排序算法都有实例结合,而且有源代码的实现,对编程水平提高有很大帮助啊。
麦儿
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功