算法概论第三周作业
2014-03-27 11:08
274 查看
package sort; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.*; public class sort { /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 String s=""; List <Integer> list=new ArrayList<Integer>(); try { FileInputStream in = new FileInputStream("C:\\Users\\SharpVoyage\\Desktop\\largeW.txt"); InputStreamReader bin = new InputStreamReader(in); BufferedReader bfreader = new BufferedReader(bin); while((s=bfreader.readLine())!=null) { //System.out.println(s.trim()); list.add(Integer.parseInt(s.trim())); // } Integer[] lineDataArray=(Integer[])list.toArray(new Integer[list.size()]); bfreader.close(); long timeStart=System.currentTimeMillis(); //开始冒泡排序计时 bubbleSort(lineDataArray); long timeEnd=System.currentTimeMillis(); //冒泡排序计时结束 System.out.println("冒泡排序法花费的时间:"+(timeEnd-timeStart)/1000+"s"); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public static void bubbleSort(Integer[] arr){ //冒泡排序法 int temp = 0; String str=null; StringBuilder sb=new StringBuilder(); //System.out.print("冒泡排序法得到的结果:"); for(int i = 0;i<arr.length;i++){ for(int j = i;j<arr.length;j++){ if(arr[i]>arr[j]){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } System.out.print(arr[i]+" "); sb.append(arr[i]+" "); str=sb.toString(); } try { FileOutputStream out = new FileOutputStream("C:\\Users\\SharpVoyage\\Desktop\\largeW_bubble.txt",true); OutputStreamWriter bout = new OutputStreamWriter(out); BufferedWriter bfwriter = new BufferedWriter(bout); bfwriter.write(str); bfwriter.flush(); out.close(); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }