본문 바로가기
반응형

풀스택 개발 (Full-Stack Development)/자료구조 알고리즘 자바3

힙 정렬 Heap Sort 자바 Max Heap 최대 힙 Heap Sort 완전 이진 트리 🔷 1. 힙 정렬(Heap Sort)이란?힙 정렬은 **완전 이진 트리 형태의 자료구조인 '힙(Heap)'**을 기반으로 하는 정렬 알고리즘입니다.힙(Heap)은 최대 힙(Max Heap) 또는 최소 힙(Min Heap) 이 될 수 있습니다.힙 정렬은 주로 최대 힙을 사용해서 내림차순 → 오름차순 정렬을 구현합니다.🔷 2. 왜 힙 정렬인가? (배경과 장점)정렬 방식메모리 추가 필요 여부시간 복잡도 (최악)안정성특징힙 정렬❌ in-placeO(n log n)❌정렬 안정성은 없지만, 메모리 효율 높음퀵 정렬❌ in-placeO(n²)❌보통 빠르지만, 최악 케이스 존재병합 정렬⭕ extra memoryO(n log n)✅메모리 사용, 안정 정렬 가능 힙 정렬은 추가 메모리 없이 항상 O(n log n)을 .. 2025. 6. 20.
equals()와 ==의 차이는 값 비교 vs 참조 비교 📌 1️⃣ data.get(i) == x비교하는 것:두 객체의 메모리 주소 (참조값, 레퍼런스) 를 비교함.즉, 두 객체가 "물리적으로 같은 객체인가?" 를 비교함.예시:Point2 a = new Point2(1, 2);Point2 b = new Point2(1, 2);System.out.println(a == b); // false (주소 다름)a와 b는 값이 같아도 서로 다른 객체 → 주소 다름 → == 결과는 false.📌 2️⃣ data.get(i).equals(x)비교하는 것:두 객체가 가지고 있는 값의 내용이 같은가? 를 비교함.즉, ix, iy가 같은지 비교하도록 Point2 클래스에서 equals()를 오버라이딩 했기 때문에 동작함.예시:Point2 a = new Point2(1, 2.. 2025. 6. 9.
스택 Stack 접시 쌓기 LIFO 큐 Queue 줄 서기 FIFO 자바 자료구조 알고리즘 📌 스택 (Stack) — "접시 쌓기"비유우리가 식당에서 접시를 쌓아두는 모습을 생각해보자.새 접시는 항상 위에 올려.꺼낼 때는 위에서부터 꺼내.이걸 LIFO (Last In, First Out, 마지막에 들어간 것이 먼저 나온다) 라고 해.예시 상황웹 브라우저의 "뒤로가기"프로그램의 함수 호출 (Call Stack)기본 동작동작설명push()데이터를 위에 올린다 (넣기)pop()위에 있는 데이터를 꺼낸다 (빼기)peek()가장 위의 데이터가 뭔지 확인 📌 스택 (Stack) — 접시 쌓기 (LIFO) [ Top ] ┌───────┐ ← 마지막 넣은 것 (먼저 나온다: pop) │ 데이터3 │ ├───────┤ │ 데이터2 │ ├───────┤ │ 데이터1 │ ← 처음 넣은.. 2025. 6. 9.
반응형