가변배열은 흔히 C#이나 JAVA와 같은 언어에서만 사용하는데, C++에서도 구현할 수 있습니다. 오늘은 가변배열이 무엇인지, 어떻게 사용할 수 있는지 알아보고 풀 소스까지 공개하겠습니다. 가변배열(Dynamic Array) 123int array[num];//또는int a[] = new input[num];cs C나 C++에서는 위와같이 배열의 크기를 사용자로부터 입력받는 코드는 작성할 수 없습니다. 그런데 우리는 배열을 생성할때 몇개의 방을 만들어야 할지 잘 모르지요. 가장 간단한 방법은 1int array[1000];cs 이와같이 무식하게 큰 크기의 배열을 정적으로 만드는것. 그러나 만약 1000개 중에 10개 20개만 사용이 된다면, 나머지 900개가 넘는 메모리들은 전부 버려지는 것이 됩니다. ..
요 몇일 자료구조에 관련한 포스팅을 많이 했는데, 돌이켜보니 자료구조란 무엇인가, 왜 사용해야 하는가, 어떤점이 좋고, 어떻게 사용 가능한가 등에 대한 내용은 언급하지 않았었다. 나로서는 알고있는 내용이고 당연하다 생각되었기 때문에 간과했던 부분인데, 그래도 기억력에는 한계가 있고 정리하는 차원에서 하나의 포스팅으로 정리하는게 좋겠다는 판단을 하여, 이렇게 별도의 포스팅으로 작성해보는 자료구조란 무엇인가(Data Structure) 글을 읽는 독자들에게 질문해 봅니다. 자료구조 하면 무엇이 떠오르나요? 흔한 자료구조의 형태로 큐(Queue)나 스택(Stack) 혹은 연결 리스트(Linked List), 트리(Tree) 등을 떠올리거나 선택정렬, 삽입정렬 등등의 정렬 알고리즘등이 먼저 떠오르지 않을까 합니..
정렬에 대한 세번째 포스팅으로 빠른 정렬, 퀵 소트에 대해서 알아보겠습니다. 이전 게시글 )정렬(Sort) : 삽입정렬(Insertion Sort) : http://andrew0409.tistory.com/138파이썬 예제 : 리스트를 정렬(Sort)하는 여러가지 방법 : http://andrew0409.tistory.com/65파이썬 예제 : 튜플(Tuple)을 정렬(Sort)하는 여러가지 방법 : http://andrew0409.tistory.com/66 퀵 정렬(quick sort)은 기준키를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법입니다. 퀵 정렬은 재귀적으로 실행되기 때문에..
어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다."재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느날, 그 선인에게 한 선비가 찾아와서 물었어."재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을... 재귀함수와 관련된 재미있는 일화입니다. 이를 통해 한가지를 유추할 수 있죠. 위의 이야기는 "무한루프"에 빠지게 된다는 점입니다. 재귀함수에 대한 본격적인 설명을 시작하기 전에 제가 한가지 당부하고 싶은점은, 재귀함수를 만들때 빠져나가는 곳을 명확하게 정해놓지 않으면 재귀함수는 무한..
검색에 대한 알고리즘 중 선형검색과 이진검색에 대하여 알아보도록 하겠습니다. 선형 검색(Linear Search)다른이름으로 순차 검색(Sequential Search) 이라고도 하는 선형검색에 대하여 먼저 알아보겠습니다.선형 검색은 데이터가 모인 집합(배열, 링크드리스트 등)의 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 알고리즘입니다. → 순차적으로 검색 3 5 2 1 0 9 7 8 6 4 데이터를 정렬하거나 따로 건드릴 필요가 없고, 난이도가 쉬운 편이나, 데이터의 양이 많아지면 검색에 소요되는 시간도 비례하여 많아지고, 하나씩 일일이 비교하기 때문에 비효율적이라는 단점이 있습니다. 예를들어 위와 같은 데이터의 집합이 있을경우 4를 찾으려면 10번의 비교를 거쳐야 합니다. 100만..
이번 글은 자료구조 두번째 포스팅으로 선택정렬에 대하여 다루어 보겠다. 이전 게시글 )정렬(Sort) : 삽입정렬(Insertion Sort) : http://andrew0409.tistory.com/138파이썬 예제 : 리스트를 정렬(Sort)하는 여러가지 방법 : http://andrew0409.tistory.com/65파이썬 예제 : 튜플(Tuple)을 정렬(Sort)하는 여러가지 방법 : http://andrew0409.tistory.com/66 참고용으로 올린 위 그림은 선택정렬의 알고리즘을 그림으로 표현한것입니다.이전 포스팅인 삽입정렬에서 설명이 조금 부족했다는 생각에 덧붙이자면, 삽입정렬은 배열 내 "정렬된 부분" 과 "정렬되지 않은 부분"이 있을때 정렬되지 않은 부분에서 가장 작은 숫자를 ..
자료구조 정렬에 대한 첫번째 포스팅, 정렬 알고리즘에 대해 공부하고자 들어오셨다면 읽고 가시면 되는데 필요한 분이 있을것 같아서 파이썬 정렬에 대한 링크 첨부합니다. 파이썬 예제 : 리스트를 정렬(Sort)하는 여러가지 방법 : http://andrew0409.tistory.com/65파이썬 예제 : 튜플(Tuple)을 정렬(Sort)하는 여러가지 방법 : http://andrew0409.tistory.com/66 그럼 지금부터 자료구조 정렬(Sort)에 대한 첫번째 포스팅으로 삽입정렬에 대하여 간단하게 알아보도록 하겠습니다. 아래는 삽입정렬의 알고리즘을 그림으로 표현한것 아래 동영상을 한번 참고해보실까요, 영상은 삽입정렬에 대한 알고리즘을 포크댄스로 표현한 것입니다. 이해를 돕기위하여 첨부합니다. 위 ..
추상 자료형(ADT)는 무엇인가? 자료구조를 이해하기 위해서는 추상 자료형(ADT)에 대해 먼저 숙지하는 것이 중요하다. 그렇다면 알아보자 추상 자료형이란 무엇인가.우선 추상 자료형이라는 단어만 봤을때 느낌은 "추상화 된 자료형" 정도인데, "추상화" 라는 말이 조금 어렵다. 이에 대해서 정리해 보도록 하자. C++ 에서의 클래스를 생각하면 쉽다. 예를들어 우리가 일상에서 흔히 쓰는 티비를 클래스로 가진다고 생각해보자. 클래스의 이름은 Tv가 될 것이다.이때 사용하는 기능은 전원 켜기, 전원 끄기, 채널변경, 볼륨변경 이렇게 4가지 기능이 있다고 생각해 보면 이를 인터페이스 함수로 만들 수 있다. 12345678910class Tv{ private: //생략 public: PowerOn(); //파워 온..
- Total
- Today
- Yesterday
- 파이썬예제
- 리눅스
- 유즈케이스
- 액터
- 티그널
- 파일
- 악보
- 자료구조
- C
- 클래스
- UML
- socket
- 티라노 시그널
- 파이썬
- Sort
- 터미널
- 데이터베이스
- C++
- 안드로이드
- 소켓 프로그래밍
- 클라이언트
- 소켓
- 쓰레드
- 디렉터리
- 라즈베리파이
- MFC
- 프로세스
- C/C++
- 스레드
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |