본문 바로가기

전체 글

(92)
[Java연습] 배열을 이용한 기본 스택 구현 /* 20240220 배열을 이용한 기본 스택 구현 */ class MyStack{ int[] arr; int top = -1; MyStack(int size){ //생성자 arr = new int[size]; } public boolean isEmpty(){ if(this.top == -1){ return true; }else { return false; } } public boolean isFull(){ if(this.top == this.arr.length -1){ return true; }else { return false; } } public void push(int data){ if(this.isFull()){ System.out.println("Stack is full!"); return; ..
[Data Structure기초] Stack Stack (스택) - 데이터를 차곡차곡 쌓아올린 형태, 선형 자료구조 - 가장 마지막에 삽입된 자료가 가장 먼저 삭제됨 (Last In First Out , 후입선출) - 정해진 방향으로 쌓을 수 있고 top 으로 정한 곳을 통해서만 접근 가능 - 문서 편집기에서 undo 기능을 구현할 때 stack 을 사용 Stack 시간복잡도 삽입(Push) : O(1) 삭제(Pop) : O(1) 읽기(Peek) : O(1) 탐색(Search) : O(n) 접근(Access) : O(n) 연산 push() 삽입. 스택이 가득 차 있으면 오류 발생 후 종료 , 공간이 있으면 top 증가 시킨 후 데이터 추가 pop() 삭제. 스택이 비어있으면 오류 발생 후 종료 , 스택이 비어있지 않으면 top 이 가리키는 데이터를..
[Algorithm기초] 버블 정렬, 삽입 정렬, 선택 정렬 정렬 특정 값을 기준으로 데이터를 순서대로 배치하는 방법 정렬의 종류 1. 구현 난이도는 쉽지만 속도는 느린 알고리즘 - 버블 정렬, 삽입 정렬, 선택 정렬 2. 구현 난이도는 조금 더 어렵지만, 속도는 빠른 알고리즘 - 합병 정렬, 힙 정렬, 퀵 정렬, 트리 정렬 3. 하이브리드 정렬 - 팀 정렬, 블록 병합 정렬, 인트로 정렬 4. 기타 정렬 알고리즘 - 기수 정렬, 카운팅 정렬, 셸 정렬, 보고 정렬 버블 정렬 (Bubble Sort) 인접한 데이터를 비교하며 자리를 바꾸는 방식. 값을 비교하고 작은 수가 앞쪽으로 자리교체 알고리즘 복잡도 : O(n제곱) = n(n-1)/2 버블정렬구현 의사코드 (Pseudocode) *스도코드 : 알고리즘 flow 파악용 코드이며 실제 돌아가지 않음 bubbleS..