본문 바로가기

Java로 배우는 자료구조

제1-1강 변수, 배열, 반복문 (7/7)

Code14

import java.util.Scanner;

public class Code14 {
	public static void main(String[] args) {
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int [] data = new int [n];
		
		for (int i = 0; i < n; i++)
			data[i] = kb.nextInt();
		kb.close();
		
		// bubble sort
		for (int i = n - 1; i > 0; i--) {
			// data[0] ... data[i]
			for (int j = 0; j < i; j++) {
				// swap data[j] and data[j + 1]
				if(data[j] > data[j + 1]) {
					int tmp = data[j];
					data[j] = data[j + 1];
					data[j + 1] = tmp;
				}
			}
		}
		System.out.println("Sorted data:");
		for (int i = 0; i < n; i++)
			System.out.println(data[i]);
	}
}

 

  • 사용자로부터 n개의 정수를 입력받은 후 오름차순으로 정렬(sort)하여 출력하는 코드
  • 버블정렬(bubblesort) 알고리즘
  • data[0] ~ data[i] 중에서 최댓값을 data[i] 위치로 몰아간다.

 

Code15

import java.util.Scanner;

public class Code15 {
	public static void main(String[] args) {
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int [] data = new int [n];
		
		for (int i = 0; i < n; i ++) {
			int tmp = kb.nextInt();
			int j = i - 1;
			while (j >= 0 && data[j] > tmp) {
				data[j + 1] = data[j];
				j--;
			}
			data[j + 1] = tmp;
			
			for (int k = 0; k <= i; k++)
				System.out.print(data[k] + " ");
			System.out.println();
		}
		kb.close();
	}
}

 

  • 사용자로부터 n개의 정수를 입력받아라. 정수가 하나씩 입력될 때마다 현재까지 입력된 정수들을 오름차순으로 정렬하여 출력하라.