Programming skills/자료구조

    [자료구조]스택과 큐

    [자료구조]스택과 큐

    1. 스택(Stack) : 후입선출의 형태로 가장 마지막에 들어온 값을 가장 먼저 처리하는 알고리즘 예를 들면, 웹페이지 뒤로가기와 같은 것. 내가 마지막에 방문했던 페이지를 뒤로 가기를 누름으로써 가장 먼저 처리하는 형태 using System; using System.Collections.Generic; using UnityEngine; public class Stack : MonoBehaviour { Stack stack = new Stack(); public void Start() { } public void Update() { //데이터 추가 stack.Push("사과"); stack.Push("딸기"); stack.Push("바나나"); //데이터 제거 while (stack.Count > 0..

    [자료구조] 선택정렬과 버블정렬 정의 및 차이

    [자료구조] 선택정렬과 버블정렬 정의 및 차이

    1. 선택정렬 (Selection Sort) : 가장 작은 수를 찾아서 맨 앞으로 보내는 것 방법 1) 배열의 처음부터 끝까지 반복문을 통해 가장 작은 수를 탐색 2) 가장 작은 수를 배열의 맨 앞으로 보내기 3) 그 다음 배열부터 다시 1),2) 행동 반복 즉, 이중 for문을 통해 구현하므로 시간 복잡도는 n^2,0이다. * 자리바꾸기 공식의 로직 1. 맨 왼쪽자리 변수 temp 선언 2. 맨 왼쪽자리에 올 값 3. 2번의 값은 temp //선택정렬 : 가장 작은 것을 선택해서 맨 앞으로 보낸다 void SelectionSort() { //외부루프는 첫번째 요소부터 길이까지 탐색 for(int i = 0; i < num.Count-1 ; i++) { //최솟값 설정 int minIdex = i; //..

    [자료구조] Array 와 LinkedList의 차이

    [자료구조] Array 와 LinkedList의 차이

    Array(배열) : 연결된 메모리를 보장하여 중간데이터에 빠르게 탐색이 가능하지만 삽입이나 삭제의 경우에데이터를 전부 이동해야하기에 비효율적이다. Array(배열)는 가장 기본적인 자료구조로 정적 자료구조이다. 인덱스를 통해 해당 원소에 접근가능하다. 따라서 시간 복잡도는 0(1)으로 빠르게 찾을 수 있다. Random access가 가능하다는 장점이 있어 접근과 탐색에 용이하다. 하지만 삭제나 삽입 과정에서 원소에 접근해서 작업을 할 때는추가적인 작업이 발생해 시간이 더 걸린다. 예를 들면 어느 원소를 삭제한다고 했을 때 연속적인 배열이 깨지기 때문에 빈공간이 생긴다. 따라서 삭제한 원소보다 큰 인덱스를 갖는 원소들을 움직이기에 비용(cost)이 발생하고 시간복잡도는 0(n)이 된다. 삽입도 마찬가지..