본문 바로가기

환영합니다. 이 블로그 번째 방문자입니다.

JAVA/CS 스터디

  (8)

[CS 스터디: JAVA] (8) 거품 정렬, 선택 정렬, 삽입 정렬 정렬 : 순서 없이 배열된 있는 자료들을 그 값에 따라 순서에 따라 재배열하는 것 오름차순 정렬 (Ascending, 작은 → 큰) 내림차순 정렬 (Descending, 큰 → 작은) 숫자 1 2 3 4 ... 10 9 8 7 ... 영어 a b c ... z (알파벳 순) z y x ... a (알파벳 역순) 한글 ㄱ ㄴ ㄷ ... ㅎ ㅎ ㅍ ㅌ ... ㄱ 거품 정렬(Bubble Sort) : 가장 단순하고 직관적인 정렬 알고리즘 : 간단한 코드가 필요할 때에나 복잡도가 중요하지 않은 문제에서 사용 : 인접한 두 원소를 비교(Compare)해 조건에 맞지 않다면 두 원소를 바꿔줌 (Swap) : Compare and Swap Cycle ✓ 1번째 순회 (Step 0) ① 배열의 첫번째 인덱스(i = 0..
[CS 스터디: Java] (7) B Tree & B+ Tree B-Tree : 모든 리프 노드들이 같은 레벨이 있어야 하는 트리 구조 : self-balancing tree → 스스로 균형을 맞추는 트리 → 같은 레벨에 있도록 : 노드는 2개보다 많은 자식을 가질 수 있음 : 데이터 삽입, 삭제 시 스스로 균형을 맞춰야 하므로 일반 이진 트리보다 복잡한 연산이 필요함 : 하지만 탐색 시에는 어떤 값에 대해서도 최대 시간이 같으므로 빠름 : 높이는 가능한한 낮게 유지해야 함 B+Tree : B-Tree의 확장개념, : ? 모르겠다. 스터디 후 작성하도록 하겠음
[CS 스터디: JAVA] (6) 트라이 트라이(Trie) : 문자열 집합을 저장하고 탐색하기 위한 트리 형태의 자료 구조 : 자동완성 기능, 사전 검색등에 특화되어 있는 구조(단어의 앞글자부터 찾는) -- 예를 들어, "bear" 을 찾을 때 'b' 를 찾고 'e','a','r'를 순서대로 찾는다. >> bell, bear, bore, bat, ball, stop, stock, stack을 저장한 트라이 트리 구조 → Trie 구조의 특징 (1) 항상 루트 노드는 null 노드 (여러개 집합의 문자열을 저장해야 하므로) (2) 각각의 자식 노드들은 알파벳 순서대로 정렬 (3) 각각의 노드는 최대 26개의 자식을 가질 수 있음(A부터 Z까지) (4) 루트 노드를 제외한 각각의 노드는 1개의 알파벳 노드를 저장할 수 있음 (5) 삽입하는 가장 긴..
[CS 스터디 : JAVA] (5) 해시, Hash https://sennieworld.tistory.com/35?category=965527 [10] Hash Table, 해시 테이블 ✅ 해시 테이블이란 해시 테이블(Hash Table)은 키(Key)에 데이터(Value)를 저장하는 자료형이다. 파이썬에서 공부했던 딕셔너리와 비슷한 개념 정도가 아니라, 해시를 구현할 때 딕셔너리 타입을 사 sennieworld.tistory.com 👆 기본 개념 확인 → 선언 방식 -- java.util.Hashtable 패키지 import -- Hashtable 해시테이블명 = new Hashtable(); 으로 선언
[CS 스터디 : JAVA] (4) 이진 탐색 트리 이진 탐색 트리(Binary Search Tree, BST) : 이진트리 + 조건 한개 추가(모든 노드에 대해 왼쪽 노드의 데이터 중복된 키를 허용하지 않음 : 중위 순회 방식 ( 왼 - 루트 - 오) → 선언 방식 class BinarySearchTree { class Node {// 노드 클래스 : 데이터, 왼쪽 노드, 오른쪽 노드 int data; Node left, right; public Node(int item){ // 생성자 초기화 data = item; left = right = null; } } Node root; // 루트 노드 Binar..
[CS 스터디 : JAVA] (3) 트리 2022.04.18 - [Python/[Data Structure] 자료구조] - [7] Tree, 트리 [7] Tree, 트리 👇🏻 오늘도 여김없이 오늘의 짤 더보기 무는 뿌리를 바탕으로 가지를 통해 잎이 난다. 나무에 영양분이 공급되는 경로(루트)가 트리(Tree)의 자료구조 형태와 비슷하다. 오른쪽 그림이 트리 자 sennieworld.tistory.com 참조
[CS 스터디 : JAVA] (2) Stack & Queue & Heap 1️⃣ Stack : 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 구조 : 후입선출 > 가장 마지막에 들어온 원소가 가장 첫 번째로 나옴 : 스택의 가장 마지막으로 들어온 원소(맨 윗 원소)를 top이라고 함 : java.util.AbstractCollection 상속받음 → 선언 방식 -- java.util.Stack 패키지 임포트 → Stack의 특징 (1) LIFO 구조 (2) 재귀 함수를 호출할 때 사용 > 잘못된 재귀 호출 시(깊은 재귀에 빠져버릴 때) 나는 에러가 StackOverflowError(스택 꽉 차 있음) (3) 통용되는 메서드명이 존재함 > top, push, pop 등 (3) java.util.Stack 패키지에서 다양한 메서드를 제공(java.util.AbstractCollect..
[CS 스터디 : Java] (1) Array, ArrayList, LinkedList 1️⃣ Array, 배열 : 자료형의 집합 → 선언 방식 → 배열의 특징 (1) 배열의 길이(크기)는 고정 (2) 반복문과 인덱스를 통해 배열의 값 접근 (3) [배열이름.length] 를 사용해 배열의 길이 접근 2️⃣ ArrayList : 배열과 유사한 자료형의 집합 : List 자료형(인터페이스) 중 하나 → 선언 방식 -- java.util.ArrayList 패키지를 import 해서 사용 -- ArrayList 리스트이름 = new ArrayList(); → ArrayList의 특징 (1) 배열의 길이가 동적으로 변함 > 원하는 만큼의 값을 담을 수 있음 > 자동으로 크기가 늘어남 (2) 다양한 메서드를 제공 > CRUD 구현 가능 메서드 기능 메서드 명 반환 타입 원소 추가(C) add(E e..