package com.example.his.test;
import java.util.Random;
public class sort {
public static void main(String[] args) {
SortTest sortTest = new SortTest(100000,100,5000000);
// sortTest.insertSort();
// sortTest.insertSort2();
// sortTest.selectSort();
// sortTest.maopaoSort();
sortTest.guibingSort();
int[] arr = sortTest.randArr(100000,100,5000000);
long preTiem = System.currentTimeMillis();
quickSort(arr,0,99999);
long nextTime = System.currentTimeMillis();
System.out.println("快速排序总用时" + (nextTime-preTiem) + " ms");
for (int i=0; i<100; i++)
System.out.print(arr[i] + " ");
System.out.println();
}
public static void quickSort(int[] arr,int start,int end) {
if(start >= end) {
return;
}
int i,j,t,temp;
i = start;
j = end;
// Random r = new Random();
// int q = r.nextInt(end-start) + start;
temp = arr[i];
while (i<j){
while (i<j && temp <= arr[j])
j--;
while (i<j && temp >= arr[i])
i++;
if (i<j){
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[start] = arr[i];
arr[i] = temp;
quickSort(arr,start,j-1);
quickSort(arr,j+1,end);
}
}
class SortTest{
private int n;
private int l;
private int r;
private int[] a;
public SortTest(int n,int l, int r) {
this.n = n;
a = randArr(n,l,r);
}
public void quickSort(){
int[] arr = a.clone();
long preTime = System.currentTimeMillis();
quick(arr,0,n-1);
long nextTime = System.currentTimeMillis();
System.out.println("归并排序总用时" + (nextTime - preTime) + "ms");
for (int i=0; i<Math.min(n,100); i++)
System.out.print(arr[i] + " ");
System.out.println();
}
private void quick(int[] arr,int low,int high){
}
/**
* 归并排序
*/
public void guibingSort(){
int[] arr = a.clone();
long preTime = System.currentTimeMillis();
guibing1(arr,0,n-1);
long nextTime = System.currentTimeMillis();
System.out.println("归并排序总用时" + (nextTime - preTime) + "ms");
for (int i=0; i<Math.min(n,100); i++)
System.out.print(arr[i] + " ");
System.out.println();
}
private void guibing1(int[] aa, int m, int q){
if (m >= q)
return;
//优化???小于15用插入排序???
// if (q - m < 15){
// for (int i=1; i<n; i++){
// int c = aa[i];
// int j;
// for (j=i; j>0 && aa[j-1] > c; j--){
// aa[j] = aa[j-1];
// }
// aa[j] = c;
// }
// return;
// }
int mid = (m+q)/2;
guibing1(aa,m,mid);
guibing1(aa,mid+1,q);
//优化1,有序就不排,当数组比较有序时速度加快,反之变慢
// if (aa[mid] > aa[mid+1])
merge(aa,m,mid,q);
}
private void merge(int[] aa, int m, int mid, int q){
int[] aux = new int[q-m+1];
int i=m,j=mid+1,k=0;
//将较小的元素先存入新数组
while (i<=mid && j<=q ){
if (aa[i] < aa[j])
aux[k++] = aa[i++];
else
aux[k++] = aa[j++];
}
//将左数组存入新数组
while (i<=mid){
aux[k++] = aa[i++];
}
//将右数组存入新数组
while (j<=q){
aux[k++] = aa[j++];
}
for (int l=0; l<aux.length; l++){
aa[l+m] = aux[l];
}
}
/**
* 插入排序
*/
public void insertSort(){
int[] arr = a.clone();
int k;
long preTime = System.currentTimeMillis();
for (int i=1; i<n; i++){
for (int j=i; j>0; j--){
if (arr[j] < arr[j-1]){
k = arr[j-1];
arr[j-1] = arr[j];
arr[j] = k;
}else {
break;
}
}
}
long nextTime = System.currentTimeMillis();
System.out.println("插入排序总用时" + (nextTime - preTime) + "ms");
for (int i=0; i<Math.min(n,100); i++)
System.out.print(arr[i] + " ");
System.out.println();
}
/**
* 插入排序优化
*/
public void insertSort2(){
int[] arr = a.clone();
long preTime = System.currentTimeMillis();
for (int i=1; i<n; i++){
int c = arr[i];
int j;
for (j=i; j>0 && arr[j-1] > c; j--){
arr[j] = arr[j-1];
}
arr[j] = c;
}
long nextTime = System.currentTimeMillis();
System.out.println("优化后的插入排序总用时" + (nextTime - preTime) + "ms");
for (int i=0; i<Math.min(n,100); i++)
System.out.print(arr[i] + " ");
System.out.println();
}
/**
* 选择排序
*/
public void selectSort(){
int[] arr = a.clone();
long preTime = System.currentTimeMillis();
for (int i=0; i<n; i++){
int k=i,m;
for (int j=i+1; j<n; j++){
if (arr[j] < arr[k])
k = j;
}
m = arr[i];
arr[i] = arr[k];
arr[k] = m;
}
long nextTime = System.currentTimeMillis();
System.out.println("选择排序总用时" + (nextTime - preTime) + "ms");
for (int i=0; i<Math.min(n,100); i++)
System.out.print(arr[i] + " ");
System.out.println();
}
/**
* 冒泡排序
*/
public void maopaoSort(){
int[] arr = a.clone();
int m;
long preTime = System.currentTimeMillis();
for (int i=1; i<n; i++){
for (int j=0; j<n-i; j++){
if (arr[j] > arr[j+1]){
m = arr[j+1];
arr[j+1] = arr[j];
arr[j] = m;
}
}
}
long nextTime = System.currentTimeMillis();
System.out.println("冒泡排序总用时" + (nextTime - preTime) + "ms");
for (int i=0; i<Math.min(n,100); i++)
System.out.print(arr[i] + " ");
System.out.println();
}
/**
* 随机生成数组
* @param n 数组大小
* @param l 最小值
* @param r 最大值
* @return 数组
*/
protected int[] randArr(int n, int l, int r){
int[] arr = new int[n];
Random random = new Random();
for (int i=0; i<n; i++)
arr[i] = random.nextInt(r-l) + l ;
return arr;
}
/**
* 生成近乎有序的数组
* @param n 数组大小
* @param l 最小值
* @param r 最大值
* @return 数组
*/
protected int[] randApprSortArr(int n, int l, int r){
int[] arr = new int[n];
Random random = new Random();
for (int i=0; i<n; i++)
arr[i] = i+l ;
for (int i=0; i<Math.min(n,100); i++){
int k = random.nextInt(n);
int m = random.nextInt(n);
int q = arr[k];
arr[k] = arr[m];
arr[m] = q;
}
return arr;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
【ssm项目源码】医院信息管理系统.zip
共73个文件
java:38个
html:8个
xml:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
3星 · 超过75%的资源 3 下载量 191 浏览量
2021-02-28
14:31:27
上传
评论 2
收藏 754KB ZIP 举报
温馨提示
【ssm项目源码】医院信息管理系统
资源推荐
资源详情
资源评论
收起资源包目录
【ssm项目源码】医院信息管理系统.zip (73个子文件)
【ssm项目源码】医院信息管理系统
his
pom.xml 2KB
his.iml 10KB
mvnw 9KB
src
test
java
com
example
his
HisApplicationTests.java 338B
main
resources
application.properties 609B
static
css
tuifei.css 265B
zhenduan.css 1KB
guahao.css 3KB
shoufei.css 265B
tuihao.css 3KB
images
bg.png 609KB
guahao.html 11KB
test.html 597B
index.html 4KB
shoufei.html 14KB
tuifei.html 7KB
register.html 7KB
bootstrap-3.3.7-dist
css
bootstrap.min.css 118KB
fonts
glyphicons-halflings-regular.woff 23KB
glyphicons-halflings-regular.woff2 18KB
glyphicons-halflings-regular.ttf 44KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.svg 106KB
js
jquery-3.3.1.min.js 85KB
bootstrap.min.js 36KB
tuihao.html 15KB
zhenduan.html 10KB
mapper
shoufeiMapper.xml 2KB
zhenduanMapper.xml 1KB
guahaoMapper.xml 1KB
tuihaoMapper.xml 765B
userMapper.xml 637B
tuifeiMapper.xml 1KB
java
com
example
his
dao
zhenduanDao.java 583B
userDao.java 320B
tuihaoDao.java 330B
TuifeiDao.java 510B
ShoufeiDao.java 731B
guahaoDao.java 559B
HisApplication.java 490B
test
test.java 915B
StrToInt.java 1KB
sort.java 8KB
ServletInitializer.java 417B
pojo
DoctorInfo.java 1KB
User.java 729B
DrugInfo.java 2KB
Department.java 616B
Register.java 5KB
CaseInfo.java 586B
PayInfo.java 3KB
controller
shoufei.java 1KB
login.java 774B
testJson.java 420B
guahao.java 1KB
tuifei.java 902B
zhenduan.java 821B
tuihao.java 739B
service
ShoufeiService.java 690B
userService.java 310B
guahaoService.java 516B
ZhenduanService.java 338B
TuifeiService.java 358B
tuihaoService.java 287B
impl
tuihaoServiceImpl.java 773B
guahaoServiceImpl.java 1KB
TuifeiServiceImpl.java 1KB
userServiceImpl.java 1KB
ShoufeiServiceImpl.java 2KB
ZhenduanServiceImpl.java 1009B
mvnw.cmd 6KB
HELP.md 694B
his_info.sql 7KB
共 73 条
- 1
资源评论
- m0_517862742022-04-19只有登录注册
- 何必出众12022-03-16用户下载后在一定时间内未进行评价,系统默认好评。
- 云里飘月2021-09-08用户下载后在一定时间内未进行评价,系统默认好评。
高谈阔论篇幅起
- 粉丝: 269
- 资源: 520
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功