Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기
Java 2011. 11. 24. 02:10
학교에서 내주는 숙제용 소스코드이다.
자바 기본 라이브러리로 있는 ArrayList 와 Collections.sort() 를 이용하면
임시 배열에 읽었다가 복사하고 꾸리한 버블정렬을 할 필요없이 간결한 코드를 맹글 수 있지만, 이건 숙제용이니깐~
그래도 약간 배울만한 점은 Scanner 클래스의 새로운 발견이랄까?
Scanner 는 주로 System.in 에서 사용자로 부터 뭔가를 입력받는 용도로 많이들 쓸 건데,
여기서는 File 에서 데이터를 읽는 용도로 썼다. InputStream 이나 Reader 계열로 뭔가를 읽는 코드보다 간결해서 좋은것 같다.
요거는 앞으로 Stream 에서 뭔가를 읽고 싶을때 어째 잘 써먹도록 해야 겠다.
소스코드
import java.io.File; import java.util.Scanner; public class FileSort { public static void main(String[] args) throws Exception { Scanner scan = new Scanner(new File("c:\\numbers.dat")); float[] arr = new float[100]; int cnt = 0; // numbers.dat 파일읽기 while (scan.hasNext()) { arr[cnt++] = scan.nextFloat(); } // 읽혀진 숫자 갯수만큼 배열을 생성해서 복사 float[] numbers = new float[cnt]; System.arraycopy(arr, 0, numbers, 0, cnt); // 버블정렬 bubbleSort(numbers); // 배열 출력 for (float num : numbers) { System.out.println(num); } } // 내림차순 버블 소트 public static void bubbleSort(float[] arr) { int n = arr.length; for (int pass = 1; pass < n; pass++) { for (int i = 0; i < n - pass; i++) { if (arr[i] < arr[i + 1]) { float temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } } }
내림차순으로 바꾸고 싶을때는 if (arr[i] < arr[i + 1]) 요기에서 요렇게 부등호 방향만 바꿔주면 된다. if (arr[i] > arr[i + 1]) {
사용된 numbers.dat 파일
2011/11/23 - [Java] - xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기
2011/11/16 - [Java 예제] - 재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/05 - [Java] - Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기
2011/08/19 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #2 : Map, List <--> JSON String 상호변환
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
2011/11/16 - [Java 예제] - 재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/05 - [Java] - Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기
2011/08/19 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #2 : Map, List <--> JSON String 상호변환
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
'Java' 카테고리의 다른 글
Java Servlet과 jQuery를 이용한 환율정보(from 네이버) 가져오기 (6) | 2012.05.24 |
---|---|
Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기 (1) | 2011.11.24 |
xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기 (5) | 2011.11.23 |
재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기 (0) | 2011.11.16 |
JAVA/JSP SQL Injection 해킹 방지를 위한 코딩 (5) | 2011.11.16 |