본문 바로가기

자료구조

(6)
정렬 퀵 정렬 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { } static void swap(int[] a, int idx1, int idx2) { int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t; } static void quickSort(int[] a, int left, int right) { int pl = left; int pr = right; int x = a[..
재귀 알고리즘 재귀 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 한다. 팩토리얼 구하기 import java.io.IOException; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException{ System.out.println(factorial(5)); } static int factorial(int n) { if (n > 0) return n * factorial(n-1); else return 1; } } 직접 재귀와 간접 재귀 직접 재귀 : 자신과 같은 메서드를 호출 간접 재귀 : 다른 메서드를 통해 자기 자신과 같은 메서드를 호출(메서드 A가 메서드 B를 ..
스택과 큐 스택 데이터를 일시적으로 저장하기 위해 사용하는 자료구조 입력과 출력 순서는 후입선출 push : 데이터를 넣음 pop : 데이터를 꺼냄 top : 푸시와 팝을 하는 위치 bottom : 스택의 가장 아랫부분 import java.io.IOException; public class Main { private static int max; //스택 용량 private static int ptr; //스택 포인터 private static int[] stk; //스택 본체 public static void main(String[] args) throws IOException{ } static int push(int x) { return stk[ptr++] = x; } static int pop() { if (..
검색 배열 검색 선형 검색 : 무작위로 늘어놓은 데이터 모임에서 검색을 수행합니다. 이진 검색 : 일정한 규칙으로 늘어놓은 데이터 모임에서 아주 빠른 검색을 수행합니다. 해시법 : 추가 삭제가 자주 일어나는 데이터 모임에서 아주 빠른 검색을 수행합니다. 체인법 : 같은 해시 값의 데이터를 선형 리스트로 연결하는 방법 오픈 주소법 : 데이터를 위한 해시 값이 충돌할 때 재해시하는 방법 선형 검색 순서대로 검색 import java.io.IOException; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException{ int[] a = {1,2,3,4,5}; int b = 5; Syste..
기본 자료구조 자료구조 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 데이터 단위 : 데이터를 구성하는 한 덩어리 자료구조 : 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법 배열의 복제(클론) 배열 이름.clone() : 다차원 배열의 복제는 되지 않음 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ int[] a = {1,2,3,4..
기본 알고리즘 세 값의 최댓값 최대값을 구하는 과정 max에 a값을 넣는다. b값이 max보다 크면 max에 b값을 넣는다. c값이 max보다 크면 max에 c값을 넣는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ System.out.println(max3(3,2,1)); } static int max3(int a, int b, int c) { int ..