2011년 8월 10일 수요일

Algorithm Analysis :: Big O - notation

*O(n) means to the UPPER BOUND


O(1)     : 자료의 양에 관계없이 일정한 시간이 걸리는 작업
O(lg n)  : 자료 집합을 반으로 나누고 그 반을 다시 반으로 나누는 과정을 반복하는 작업
O(n)     : 자료 집합을 순회하는 작업
O(n*lg n): 자료 집합을 반복해서 둘로 나누고 나뉘어진 반을 순회하는 작업
O(n^2)   : 한 집합의 각 자료에 대해 같은 크기의 다른 집합을 순회하는 작업
O(2^n)   : 집합의 모든 부분집합을 생성하는 작업
O(n!)    : 집합의 모든 순열을 생성하는 작업

Call Stack (maybe...?)

            [Activation Record of Function Foo]


+---------------------------------------------------------+
|                    Input Parameters                     | <= CCS
+---------------------------------------------------------+
|                      Return Value                       |
+---------------------------------------------------------+
|                     Local Variables                     |
+---------------------------------------------------------+
|    EBP (Base Pointer of Previous Activation Record)     |
|  Return Address (Next Command of Current Function Call) |
|                           ...                           |
+---------------------------------------------------------+
| Output Parameters (Input Parameter of Next Call Stack)  | <= NCS


                            ...


* Input Parameters: 현재 콜스택에 실제 복사된 파라미터
* Return Value: 함수 리턴시 리턴된 값의 저장 공간
* Local Variables: 현재 함수의 지역변수
* EBP Register: 이전 콜스택 시작주소의 저장 공간
* Return Address: 현재 함수 호출 후 다음 수행될 명령어 위치의 저장 공간
* Output Parameter: 다음 함수 호출 시 Input Parameters가 됨


*CCS: Current Call Stack
*NCS: Next Call Stack

2011년 8월 9일 화요일

Using Pointer in C

Execution Environment :: VS2010


// #1 type conflict :: warning, runtime error
char *sptr = "abc", *tptr;
*tptr = sptr;
printf("%s\n", tptr);

// #2 type matched :: no error
char *sptr = "abc", *tptr;
tptr = sptr;
printf("%s\n", tptr);

// #3 not-allocated memory space :: runtime error
char *sptr = "abc", *tptr;
*tptr = *sptr;
printf("%s\n", tptr);

// #4 constant integer allocation in integer pointer :: runtime error
int *iptr = (int *)10;
*iptr = 11;
printf("%d\n", *iptr);

// #5 type conflict :: warning, runtime error
int *iptr = 10;
*iptr = 11;
printf("%d\n", *iptr);

// #6 soon fixed :: no error
int *iptr = (int *)10;
iptr = NULL;

2011년 7월 19일 화요일

Meeting with my cousin Kyeongsu,
also with a grandma at bus terminal,
thinking about myself a lot,

I thought I have to be changed.
Even though it will be really hard.

2011년 7월 15일 금요일

rainy

I will stay at my hometown Boeun for about one or two week.
Today is my materal grandfather's birthday. So, my materal cousin has come to my home now. I'm a little nervous to meet him. What conversation we will do? But I'm not sure whether the reason of being nervous is that.

2011년 7월 9일 토요일

에어컨을 틀어서 서늘한 줄 알았더만 역시나 찐득찐득

7시반.
또 그 애 꿈을 꿨다. 마지막이겠지. 이제 미련은 버릴거니까.
말씀을 보고 싶었지만 시간이 그래서 밥을 먼저 먹으러 갔더니
갔다와선 게임 삼매경.

점심을 성현이와 또 먹고는 아예 windows 7을 설치하고
nba2k11과 pes2011을...

시간이 되어 우리 사랑하는 A103호 친구들을 보러나갔다.
나 혼자서는 절대 가보지도 못했을 홍대 근처를 다른사람 신경 안쓰고
마음껏 놀고 얘기하고 꼬장부리고 그랬다.

하지만...,
하루종일 내 마음은 불편하다.
뭔가 쉬운 것을 놓치고있다.
하나님 앞에 서 있다는 걸 느낄 수 있다면
내가 이렇게 고민만 하고 있을까?
오늘 홍대입구 역까지 오는 길에서 택원이에게 하소연했던 것처럼
하나님 앞에서도 말이 술술 나왔으면 좋겠다...

2011년 7월 8일 금요일

비, 그리고 덥진 않으나 끈적끈적함

"띵동, 띵동띵동"
"어... 나가께에..."
요 며칠은 동영이형이 초인종을 눌러주면서 잠이 깬다.
그 덕분에 하루 세 끼 잘 먹어서 살이 좀 찌려나.

공부가 너무 안 되서 오랜만에 학교에 감.
그 동안 노는 것도 지겨웠던 걸까.
뭘 해야할지 고민고민하다가 낭비한 시간도 꽤 된 듯.
그래도 오디오북 - Magic Tree House도 그렇고 Hackers LC도 그렇고 괜찮았다.
공부가 좀 됐다.

점심엔 화구 3인방 + 동석이형과 설렁탕을.
오후엔 조금 더 빈둥대다가 5시가 되면서 집으로 돌아왔던 듯.

돌아오자마자 - 그래도 조금 공부했다는 사실이 좋았다 - 동영이형네랑 저녁 먹고
아, 그리고나서 게임을 했구나.
Runescape라는 게임. 흐음.. 아마 끊는 게 좋겠지..?
영어가 좀더 재미있어졌음 좋겠다.

흠.. 너무 빈둥대도 시간이 빨리가는구나.
10시에 자려고 했는데 벌써 12시반이라니.
내일은 우리 A103호 아이들을 보러가는 날.
좀 기대되지만 택원이나 다른 애들은 더 설레하겠지?
아이들을 좋아하는 마음은 아마도 내가 제일 적을거야?
그나마 내가 해야하는 건 부담없이 하고싶은대로 시간을 보내며 즐기다 오는 것.
아이들이 좋아할 수 있게.

It's time to go to bed.
There is nothing to worry about.