[자료구조] 단일 연결 리스트(Singly Linked List) - 개념, 활용, 구현 (C#)
·
컴퓨터 과학(CS)/자료구조
| 자료 구조 설명 💬 일반적으로 배열과 마찬가지로 많이 쓰이는 자료구조인 거 같습니다. 단일 연결 리스트는 여러 연결 리스트 중 하나입니다. 연결 리스트는 노드로 이루어져 있으며 각 노드엔 데이터와 다음 노드를 가리키는 형태입니다. 자세한 구조는 아래 그림을 참고해 주시면 될 거 같습니다. 위 그림을 보고 눈치가 빠르신 분들은 파악했을 겁니다. 리스트는 배열처럼 데이터를 관리한다는 공통점이 있습니다. 그럼 배열과 리스트는 비슷하게 데이터를 관리를 하는 것으로 생각하고, 차이점이 없다고 생각이 들 수도 있습니다. 둘의 큰 차이점은 리스트는 배열과 달리 연속적인 메모리 공간을 가지지 않습니다. 각각 다른 메모리 공간의 노드들을 서로 연결하기 구조이기 때문에 연결 리스트라고 부르고, 한 방향으로만 연결이 되..
[알고리즘] 버블정렬 (Bubble Sort)
·
컴퓨터 과학(CS)/알고리즘
[알고리즘 설명] - 어떤 알고리즘인가? 그동안 탐색 알고리즘을 먼저 작성하였었는데 탐색 알고리즘과 함께 같이 많이 이용되는 것이 정렬 알고리즘입니다. 이분 탐색 알고리즘을 이용할 때 리스트가 미리 정렬되어 있어야 한다고 적어뒀었는데 이때 정렬을 수행하는 알고리즘들을 정렬 알고리즘이라고 합니다. 그중에서 알고리즘을 처음 접하시는 분들도 이해하기 쉬운 버블 정렬입니다. 버블 정렬은 리스트가 정렬이 될 때 모습이 거품이 수면 위로 올라오는 거 같다고 해서 붙여진 이름이라고 합니다 인접한 두 원소의 크기를 비교하여 서로의 자리를 교환할지, 유지할지를 반복 수행하는 비교적 간단한 동작을 수행하기 때문에 구현하기 쉽고 직관적인 알고리즘이라고 생각합니다. 이번에 자료를 찾아보고 정리하면서 기존의 알고 있던 버블 정..