2016-05-01 169 views
0

我想從文本文件中冒泡排序數字,我知道如何對泡泡進行排序以及如何使用文本文件。但是從來沒有同時使用過他們兩個。我試着對一個數組進行冒泡排序,並試圖找出如何用文本文件替換該數組。如果有人可以向我解釋如何獲得冒泡排序來閱讀文本文件,將不勝感激。我對java很陌生,有時會把我學到的兩種不同的東西整合到一個程序中,這有時會令人困惑。泡泡從java中的文件中排序數字

這裏是我的冒泡排序,解決了數組:

public static void main(String[] args) 
{ 

    int number[]={7,13,4,5,62,3,1,3,45}; 

    int temp; 
    boolean fixed=false; 
    while(fixed==false){ 
     fixed = true; 

    for (int i=0; i <number.length-1;i++){ 
     if (number[i]>number[i+1]){ 

     temp = number [i+1]; 

     number[i+1]=number[i]; 

     number[i]=temp; 
     fixed=false; 
     } 
} 
} 
    for (int i=0; i<number.length;i++){ 
     System.out.println(number[i]); 
    } 
    } 

} 
+0

您給出了一個普遍的問題,所以我給出一個普遍的答案。只需從文件中讀取數字即可。將字符串解析爲一個int數組(如果您想使用您編寫的用於排序的示例),然後將排序後的數組寫回文件 –

回答

0

使用掃描儀類!

File file=new File("file.txt"); 
Scanner sc=new Scanner(file); 
int arr[]=new int[100]; 
int i=0; 
while(sc.hasNextLine()){ 
    arr[i]=sc.nextInt(); 
    i++; 
} 
0

不只是硬編碼陣列..!

假設你的文件的內容是一些分隔符分隔數列表說單個空格「」

用途:

File file=new File("file.txt"); 
Scanner sc=new Scanner(file); 
String arr[] = sc.nextLine().split(" "); 

這就是它。 一旦你有了陣列,你可以玩它..!

0

你可以這樣做:

package test; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Arrays; 
import java.util.Scanner; 

public class Test { 

    public static void bubbleSort(int[] num) { 
     int j; 
     boolean flag = true; // set flag to true to begin first pass 
     int temp; //holding variable 

     while (flag) { 
      flag= false; //set flag to false awaiting a possible swap 
      for(j=0; j < num.length -1; j++) { 
       if (num[ j ] < num[j+1]) { 
        temp = num[ j ];    //swap elements 
        num[ j ] = num[ j+1 ]; 
        num[ j+1 ] = temp; 
        flag = true;    //shows a swap occurred 
       } 
      } 
     } 
    } 

    public static void main(String[] args) throws FileNotFoundException { 
     Scanner scanner = new Scanner(new File("numbers.txt")); 
     int [] numbers = new int [256]; 
     int i = 0; 
     while(scanner.hasNextInt()){ 
      numbers[i++] = scanner.nextInt(); 
     } 

     bubbleSort(numbers); 

     System.out.println(Arrays.toString(numbers)); 

    } 
} 
+0

我嘗試了您的解決方案,除輸出輸出外,一切正常[I @ 1909752 – JohnMart972

+0

想象它沒關係。感謝您的幫助 – JohnMart972

+0

問題是什麼? :)我忘了打印它 –

0

讀取文件無關,與冒泡排序。您可以讀取文件以創建一個整數數組,然後使用通常的氣泡排序算法對其進行排序