전체 글
-
[알고리즘] 삽입 정렬 (Insertion sort) - 자바 JavaComputer Science/Algorithm 2022. 8. 13. 17:54
[ 개념 ] 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 [ 과정 설명 (오름차순) ] - 두 번째 요소부터 시작하여, 그 앞의 요소들과 비교하여 삽입할 위치 지정 - 두 번째 요소보다 값이 클 경우 위치를 한 칸씩 뒤로 이동 시키고, 같거나 작을 경우에는 이동을 멈추고 해당 인덱스에 요소를 삽입 - 매 순서마다 특정 요소를 어디에 삽입할 수 있는지 위치를 찾아 삽입하여 정렬 [ 코드 예시 (오름차순) - 자바 Java ] public class InsertionSort { public static void main(String[] args) { int[] nums = { 9, 5, 6, 2, 4 }; insertionS..
-
[알고리즘] 선택 정렬 (Selection Sort) - 자바 JavaComputer Science/Algorithm 2022. 8. 13. 16:55
[ 개념 ] 원소를 넣을 위치는 정해져 있고, 저장된 자료로부터 어떤 원소를 넣을지를 선택하는 알고리즘 - 제자리 정렬 알고리즘의 하나로, 자리를 선택하고 그 자리에 오는 값을 찾는 알고리즘 [ 과정 설명 (오름차순) ] - 첫 번째 순서에서는 첫 번째 위치에 배열의 최소값을 찾아 넣어준다. - 두 번째 순서에서는 두 번째 위치에 배열의 남은 값 중에서의 최소값을 넣어준다. [ 코드 예시 (오름차순) - 자바 Java ] public class SelectionSort { public static void main(String[] args) { int[] nums = {9, 5, 6, 2, 4}; selectionSort(nums); } public static void selectionSort(int..
-
[알고리즘] 버블 정렬 (Bubble Sort) - 자바 JavaComputer Science/Algorithm 2022. 8. 13. 16:03
[ 개념 ] 인접한 두 개의 원소를 비교하며 자리를 계속 교환하여 정렬하는 알고리즘 - 비교 정렬, 제자리 정렬, 안정 정렬에 속함 📍 안정 정렬 VS 불안정 정렬 - 안정 정렬: 중복된 값을 입력 순서와 동일하게 정렬하는 정렬 알고리즘(버블정렬, 삽입정렬, 병합정렬 등) - 불안정 정렬: 중복된 값이 입력 순서와 동일하지 않게 정렬되는 정렬 알고리즘(퀵정렬, 선택정렬, 계수정렬 등) [ 과정 설명 (오름차순) ] - 첫 번째 원소부터 인접한 원소끼리 값을 비교하며 오른쪽이 큰 숫자일 수 있도록 계속 자리를 교환하며 맨 마지막 자리까지 이동 - 한 단계가 끝나면 가장 큰 원소가 맨 뒤로 이동하므로, 다음 단계부터는 가장 뒤에 있는 요소는 정렬에서 제외 - 다시 첫 번째 원소부터 값을 비교하며 이동하며 정..
-
[Java 자바] 11. 기본 API 클래스 ③ Objects 클래스Programming/Java 2022. 8. 10. 00:31
11-4. Objects 클래스 객체 비교, 해시코드 생성, null 여부, 객체 문자열 리턴 등의 연산을 수행하는 정적 메소드로 구성된 Object의 유틸리티 클래스 리턴 타입 메소드(매개 변수) 설명 int compare(T a, T b, Comparator c) 두 객체 a와 b를 Comparator를 사용하여 비교 boolean deepEquals(Object a, Object b) 두 객체의 깊은 비교(배열의 항목까지 비교) boolean equals(Object a, Object b) 두 객체의 얕은 비교(번지만 비교) int hash(Object... values) 매개값이 저장된 배열의 해시코드 생성 int hashCode(Object o) 객체의 해시코드 생성 boolean isNull(..
-
[Java 자바] 11. 기본 API 클래스 ② Object 클래스Programming/Java 2022. 8. 9. 23:52
11-3. Object 클래스 - 클래스 선언시 extends 키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속 - 최상위 부모 클래스로 필드가 없고 11개의 메소드로만 구성되어 있음 11-3-1. 객체 비교 (equals()) public boolean equals(Object obj) {...} - 매개 타입이 Object이기 때문에 모든 객체를 매개값으로 대입 가능 - 두 객체를 비교하여 논리적으로 동등하면 true, 그렇지 않으면 false 리턴 (논리적으로 동등하다 == 객체가 저장하고 있는 데이터가 동일하다는 것을 의미) - Object의 equals() 메소드는 직접 사용되지 않고 하위 클래스에서 재정의하여 논리적으로 동등비교할 때 사용 (ex...
-
[Java 자바] 11. 기본 API 클래스 ① java.lang, java.utilProgramming/Java 2022. 8. 9. 22:12
11-1 자바 API 도큐먼트 - API (Application Programming Interface)란? : 라이브러리라고도 하며, 프로그램 개발에 자주 사용되는 클래스 및 인터페이스 모음을 의미 - API 도큐먼트 : API를 문서화한 것을 의미하며, http://docs.oracle.com/javase/8/docs/api/ 에서 확인 가능 11-2 java.lang과 java.util 패키지 11-2-1. java.lang 패키지 자바 프로그램의 기본적인 클래스와 인터페이스를 담고 있는 패키지로, 별도의 import 없이 사용 가능 클래스 용도 Object - 자바 클래스의 최상위 클래스로 사용 System - 표준 입력 장치(키보드)로부터 데이터를 입력 받을 때 사용 - 표준 출력 장치(모니터)..
-
[Java 자바] 9. 중첩 ② 중첩 인터페이스, 익명 객체Programming/Java 2022. 8. 9. 20:51
9-3. 중첩 인터페이스 - 클래스 멤버로 선언된 인터페이스를 의미 - 클래스 내부에 선언함으로써 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해 사용 - 특히 UI프로그래밍에서 이벤트를 처리할 목적으로 자주 활용됨 //Button.java public class Button { // 인터페이스 타입 필드 OnClickListener listener; // 매개 변수의 다형성 void setOnClickListener(OnClickListener listener) { this.listener = listener; } // 구현 객체의 onClick() 메소드 호출 void touch() { listener.onClick(); } // 중첩 인터페이스 interface OnClickListen..
-
[Java 자바] 9. 중첩 ① 중첩 클래스Programming/Java 2022. 8. 9. 20:51
9-1. 중첩 클래스 - 클래스 내부에 선언한 클래스로 중첩 클래스를 사용할 경우 두 클래스의 멤버를 서로 쉽게 접근할 수 있으며, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있음 - 클래스 내부에 선언되는 위치에 따라 두 가지로 분류 선언 위치에 따른 분류 선언 위치 설명 멤버 클래스 인스턴스 멤버 클래스 class A { class B {...} } A 객체를 생성해야만 사용할 수 있는 B 중첩 클래스 정적 멤버 클래스 class A { static class B {...} } A 클래스로 바로 접근할 수 있는 B 중첩 클래스 로컬 클래스 class A { void method() { class B {...} } } method()를 실행할 때만 사용할 수 있는 B 중첩 클래..