본문 바로가기

컴퓨터/알고리즘:자료구조8

[자료구조] C++ vector자료구조 정리/vector 함수 벡터 Vector vector는 STL의 가장 기본적인 container자료 구조이다. 벡터는 쉽게 말하자면 한쪽이 열린 array라고 할 수 있다. array에 비해 수행 시간은 다소 길지만, 데이터를 push, pop할 수 있다는 장점이 있다. 또한 다양한 built-in 연산을 지원하므로, 해당 연산들을 잘 숙지하기만 한다면 보다 빠르고 정확한 코드 작성이 가능하다. 몇몇 자료구조를 간단히 정리하면 아래와 같다. C-style array : 크기가 정해져 있음. 오래된 스타일 STL array : 사용자의 편의성이 더해짐 STL vector : 한 쪽 방향으로 크기를 늘릴 수 있음 STL deque : 양 쪽 방향으로 크기를 늘릴 수 있음 배열 vs 벡터 자료구조를 선택할 때 배열을 선택할 것인가 .. 2022. 10. 27.
[자료구조] c++ 배열(STL Array)의 각종 사용 방법/동적 할당, 함수 파라미터, 2차원 배열 STL Array의 각종 사용 방법 앞서 배열에 대한 간단한 정리를 한 바 있다. https://doompa.tistory.com/283 [자료구조] C++ 배열 std::array 정리/함수와 동적 할당 등 배열 array 배열은 가장 보편적이고 대표적인 자료 구조라고 할 수 있다. 그러나 C언어에서 제공하는 배열은 Compile time이전에 그 크기가 결정되어야한다는 큰 단점이 있다. 이를 해결하기 위한 방 doompa.tistory.com 이번 글에서는 STL 배열에 대한 각종 사용 법을 정리하고자한다. C++ 2차원 배열 초기화와 출력 2차원 배열의 초기화와 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include #include using.. 2022. 10. 2.
[자료구조] C++ 배열 std::array 정리/함수와 동적 할당 등 배열 array 배열은 가장 보편적이고 대표적인 자료 구조라고 할 수 있다. 그러나 C언어에서 제공하는 배열은 Compile time이전에 그 크기가 결정되어야한다는 큰 단점이 있다. 이를 해결하기 위한 방법으로 크기를 동적으로 할당하는 방법(malloc 사용 등)이 있지만, 이 방법은 무척 복잡하며 그 인덱스를 직접 관리해야 하므로 의도치 않은 오류가 생길 수 있다. 그러나 C++의 STL에서는 이 문제를 해결하기 위해 array의 속도와 dynamic allocation을 가능하게 하는 Vector라는 타입을 제공한다. 또한 STL에서는 기존 array에 편의성을 추가한 STL만의 array를 제공한다. 몇몇 자료 구조를 간단히 정리하면 아래와 같다. C-style array : 크기가 정해져 있음... 2022. 10. 2.
[알고리즘] 버블 정렬 정리 및 구현 버블 정렬 정리 오늘은 정렬 알고리즘 중 시간이 다소 걸리는 버블 정렬(bubble sort)를 정리하도록 하겠습니다. 버블 정렬이란? 버블 정렬은 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘입니다. 즉, 바로 옆에 있는 요소를 검사하여 원하는 순서가 되도록 두 원소를 바꾸어주며 진행하게 됩니다. 버블 정렬 구체적인 설명 버블 정렬은 인접한 두 원소를 비교하며 정렬하는 방법입니다. 우선은 첫 번째 자료(0번째 인덱스 값)와 두 번째 자료(1번째 인덱스 값)을 비교, 그리고 두 번째 자료와 세번째 자료를 비교.... 이런 빙식으로 마지막 이전 요소 n-1과 n번째 자죠를 비교, 교환하며 정렬을 진행하게 됩니다. 처음 0번 인덱스부터 시작하여 비교를 진행하였을 때, 그 1회전이 끝나면 가장 큰 자료(혹.. 2021. 11. 30.