fullstack

[C++] Bubble Sort 구현

자료구조

정렬기법중 버블소트는 시간복잡도가 n제곱으로 상당히 비효율적이지만 코드가 단순해서 가장 많이 사용된다.


len만큼의 길이를 가진 배열 arr을 오름차순으로 정렬하고 싶다면 다음과 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void bubbleSort(int arr[], int len)
{
    for(int i=0; i<len; i++)
    {
        for(int j=0; j<len-1-i; j++)
        {
            if(arr[j] > arr[j+1])
            {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1= temp;
            }
        }
    }
}



'자료구조' 카테고리의 다른 글

[C++] 이진 검색 구현  (0) 2015.11.16
[C++] 간단한 Queue 만들기  (0) 2015.11.12
[C++] 간단한 Stack 만들기  (0) 2015.11.11

[C++] 간단한 Queue 만들기

자료구조

Queue는 Stack과 반대로 먼저 넣은 데이터가 먼저나오는 FIFO(First In First Out) 형태의 자료구조이다.

선형큐는 빈공간을 사용하면 모든자료를 한칸씩옮겨야하는 단점이 있기 때문에 원모양으로 이어지는 환형큐를 사용하는 것이 좋다.


가장 경량화된 환형큐를 구현해 보았다.


1
2
3
4
5
6
7
8
9
10
11
class myQueue {
private:
    int arr[maxQueueSize];
    int front, rear;
public:
    void init() { front = 0; rear = 0; }
    void enq(int item) { if(!isFull()) arr[++rear%maxQueueSize] = item; }
    int deq() { if(!isEmpty()) return arr[++front%maxQueueSize]; }
    bool isEmpty() { return front==rear?true:false; }
    bool isFull() { return (rear+1)%maxQueueSize==front?true:false; }
};



'자료구조' 카테고리의 다른 글

[C++] 이진 검색 구현  (0) 2015.11.16
[C++] Bubble Sort 구현  (0) 2015.11.12
[C++] 간단한 Stack 만들기  (0) 2015.11.11

[Unity3D] 다른 오브젝트의 함수를 호출하는 방법들

Unity

Unity에서 다른 GameObject의 함수를 호출하기 위한 방법은 여러가지가 있지만 그중 대표적인 방법 3가지만 소개하겠다.

 

 

 

우선 호출할 함수는 public으로 선언되어 있어야 한다.

Player라는 GameObject에 PlayerScript라는 Component가 있고 Func라는 함수를 호출하고 싶다면 

 

1
GameObject.Find("Player").GetComponent<PlayerScript>().Func();
 

 

이 방법이 가장 기본적인 방법이다. 

Player라는 이름을 가진 GameObject를 찾아 PlayerScript라는 Component의 Func 함수를 호출하였다.

 

1
GameObject.FindWithTag("GM").GetComponent<GMScript>().Func();
 

 

GameManager와 같은 유일한 태그를 가지는(GM이라는 태그는 GameManager에서만 사용해야한다) GameObject를 찾을 때에는 FindWithTag를 사용하면 더욱 좋은 퍼포먼스를 낼 수 있다.

 

1
GameObject.FindWithTag("GM").SendMessage("Func");
 

 

마지막으로 SendMessage라는 함수를 문자열로 호출하는 방법이 있다. 

위와같이 호출할 함수를 GameObject에 메세지만 던져주면 알아서 해당 함수가 있는 Component를 찾아서 함수를 호출해준다.

이 방법으로 함수를 호출할때는 호출할 함수가 public으로 선언되어 있지 않아도 된다.

편리한 만큼 약간의 성능저하가 있지만 신경쓸 정도는 아니라고 한다.