第三周排序 冒泡排序和归并排序
来源:互联网 发布:网络ip计算器 编辑:程序博客网 时间:2024/05/21 10:34
/*
对文件 largeW.txt(下载链接)中的数据,编程实现冒泡排序(方法名:bubbleSort) 与 归并排序(mergeSort),把排序后的结果分别保存到largeW_bubble.txt 和 largeW_merge.txt 中,把两种排序结果的运行时间输出到屏幕中(发博文时把运行时间的截图作为运行结果提交)。*/
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class sort { public static void sort(String[] arr, int start, int end) { if (start>= end) return; // 找出中间索引 int mid = (start + end) / 2; // 对左边数组进行递归 sort(arr,start, mid); // 对右边数组进行递归 sort(arr, mid + 1, end); // 合并 mergeSort(arr, start, end, mid); } public static void mergeSort(String[] arr, int start, int end, int mid) { String[] tmpArr = new String[end]; int tmpArrIndex = 0; int part1ArrIndex = start; int part2ArrIndex = mid + 1; int l; while ((part1ArrIndex <= mid) && (part2ArrIndex <= end)) { l=arr[part1ArrIndex].compareTo(arr[part2ArrIndex]); if (l < 0) { tmpArr[tmpArrIndex++] = arr[part1ArrIndex++]; } else { tmpArr[tmpArrIndex++] = arr[part2ArrIndex++]; } } while (part1ArrIndex <mid) { tmpArr[tmpArrIndex++] = arr[part1ArrIndex++]; } while (part2ArrIndex < end-1) { tmpArr[tmpArrIndex++] = arr[part2ArrIndex++]; } } public static void main(String[] args)throws Exception { try { FileReader fr=new FileReader("F:\\largeW.txt"); BufferedReader br=new BufferedReader(fr); int len=0; while(br.readLine()!=null) { len++; } System.out.println(len); String[] s=new String[len]; int t=0; String rl=""; FileReader fr1=new FileReader("F:\\largeW.txt"); BufferedReader br1=new BufferedReader(fr1); while((rl=br1.readLine())!=null) { s[t]=rl; t++; } System.out.println("文本数据量是: "+len); System.out.println("选取排序的文本数量为 :10000"); len=10000; int res; String a; long startTime=System.currentTimeMillis(); //获取开始时间 //开始冒泡排序 for(int i=0;i<len-1;i++) for(int j=i+1;j<len;j++) { res=s[i].compareTo(s[j]); if(res>0) { a=s[i]; s[i]=s[j]; s[j]=a; } } /*for(i=0;i<array.length-1;i++){for(j=0;j<array.length-i-1;j++){if(array[j]>array[j+1]){temp=array[j];array[j]=array[j+1];array[j+1]=temp;}}}*/ long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("冒泡排序程序运行时间: "+(endTime-startTime)+"ms"); FileWriter fw=new FileWriter("F:\\largeW_bubble.txt",true); BufferedWriter writer = new BufferedWriter(fw); for(int i=0;i<len;i++) { writer.write(s[i]+"\r\n"); } long startTime1=System.currentTimeMillis(); //获取开始时间 //开始归并排序 sort(s,0,len-1); long endTime1=System.currentTimeMillis(); //获取结束时间 System.out.println("归并排序程序运行时间: "+(endTime1-startTime1)+"ms"); FileWriter fw1=new FileWriter("F:\\largeW_merge.txt",true); BufferedWriter writer1 = new BufferedWriter(fw1); for(int i=0;i<len;i++) { writer1.write(s[i]+"\r\n"); } } catch(IOException e) { System.out.println("ERROR"); } }
}
0 0
- 第三周排序 冒泡排序和归并排序
- 第三周作业归并排序和冒泡
- 第三周作业-冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业 冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 第三周作业——冒泡排序和归并排序
- 机器学习之基于协同过滤的推荐引擎
- HDU-1248 完全背包
- NYOJ_477A+B Problem III
- poj2402(计算第k个回文数)
- 用递归方法求解汉诺塔问题。
- 第三周排序 冒泡排序和归并排序
- C++学习:C++primer第六天
- 数据结构内存管理c++实现
- Linux中环境变量文件及配置
- IO输入和输出
- 使用EmguCV库时出现"Emgu.CV.CvInvoke的类型初始值设定项引发异常"
- POJ-2063 完全背包
- 嵌入式 SIMCOM平台AT命令中文参考
- mapxtreme C# 完美车辆动态轨迹展示