개발하면서
-
2-3-4 tree개발하면서/Algorithm,DS,PS 2010. 12. 26. 11:04
2-3-4 트리란 이진트리가 한쪽으로 쏠리는 경우가 발생할수있는데 이를 해결하기위해 고안한 자료구조이다. 2-3-4 트리의 특징으로는 이진트리의 경우 하나의 노드는 하나의 데이터와 두개의 자식노드를 가질수 있는데 반해 2-3-4 트리의 경우, 세개의 데이터와 네개의 자식노드를 가질수있다. 2-3-4 트리라는 명칭은 가질수 있는 자식노드의 수때문에 나온것같다. 그렇다면 왜 1개 자식노드를 가지는 노드는 없을까? 삽입, 삭제과정에서 발생하는 연산을 보면 이해가 된다. split할때 자식이 두개인 노드생성, merge할땐 부모노드가 가진 자식노드 갯수가 3이상이므로(두개 이상의 데이타를가짐) 1개 자식노드를 가지는 노드는 있을수가 없다. (아....정말 설득력 없네요....) 마지막으로 데이타를 추가할때 이진..
-
bitbucket alias 지정하기개발하면서/etc 2010. 12. 26. 09:32
Mercurial과 bitbucket 연동해서 사용하다보니 너무너무너무 좋지만 한가지 아쉬웠던것이 있었습니다. 위 그림처럼 bitbucket 사이트에서 작업하는게 아니라 clone으로 다운받아서 commit작업을 하면 익명의 사용자가 작업한것처럼 나옵니다. 프로필 사진도 등록하고 했는데. . .(commit log....부끄럽네요. . .허허허 공부해야겠습니다) 방법은 간단합니다. http://confluence.atlassian.com/display/BITBUCKET/Setting+up+User+Aliasing+for+your+Repositories 자신이 만든 repository 이동후 Admin 클릭 Custom Username aliases 클릭 bitbucket username에는 bitbuck..
-
[Algorithm]Bubble sort, Insert sort, Select sort개발하면서/Algorithm,DS,PS 2010. 12. 24. 10:35
sort 세개를 한꺼번에 포스팅하는 이유는? 세개 sort에 대해서는 자료가 너무 많아서 굳이 설명 하지 않아도 될 것같아서 였습니다. 그럼 지금 왜 포스팅을 하냐? 위 세개 알고리즘에 대한 소스를 공유하고자 입니다. 더 나은 방법이나 잘못된 부분이 있으면 알려주세요. 지금 개념 파악후 혼자 낑낑대면서 하고있는데.....정말 제가 부족하다는걸 뼈저리게 느끼고 있습니다. int와 char을 지원하고 구조체 정렬까지 하려고 했는데 이 부분에 대해선 아직 머리가 안돌아가네요 허허허 dol9_sort.c, dol9_sort.h main.c 로 구성되어있습니다. 조금 수정한 내소스 dol9_sort.h #include "dol9_sort.h" int main(int argc, char *argv[]) { //in..
-
CDA -> MP3로 저장하기개발하면서/etc 2010. 12. 8. 09:34
영어 회화 CD나 음악 CD의 경우 mp3 포맷으로 안나오는데요. 저같이 CDP가 없는 사람은. . . 컴퓨터에서만 들을수밖에 없는데......mp3변환하는방법을 알아보겠습니다. 며칠전 구매한 "미국 영어발음 무작정 따라하기 종합편"에 들어있는 CD로 진행을 하겠습니다. CD에 있는 파일들입니다. cda네요.........제가 가진 mp3로는......택도없죠.... 파일중에 하나를 재생 시킵니다. Windows Media가 실행됩니다. 우측 상단에 '라이브러리로 전환' 버튼을 클릭합니다. 기타 옵션을 들어간 다음에 복사할 파일 형식과 음질을 선택합니다. 시간도 많은데 전 최고음질.....후후훗 CD복사를 클릭합니다. 오오오~~~ 복사가 시작되네요. 쨔잔~!! : ) 이젠 항상 듣고 다닐거에요~ ㅋㅋㅋㅋ..
-
How to install git on ubuntu개발하면서/etc 2010. 12. 7. 20:03
제목을 영어로 한 이유는... 구글링에 How to Install git on ubuntu로 검색한 결과를 포스팅 하기 때문입니다...자료가 엄청나네요...어휴... 자료를 보면서 제가 설치했던 과정을 기록하려고 합니다. web에서 git의 기록들을 보고 싶다면 우분투에서 gitweb 설치 방법 git 명령어 (이건 좀 대박인듯...) git 명령어 모음 git 사용설명서 (한글) 자신의 컴퓨터에 git 호스팅을 설치해보자~!! pro git 번역 이 자료 좀 짱인듯...ㅜ,ㅜ (영어의 필요성 절감...) 마지막 하이라이트 소스 코드 개발 + 소셜 네트웍 기능이 가능한 Github 입니다. github 등록 방법 제가 C를 주로 사용하는데 Github에 있는 프로젝트 중에 redis가 재밌어 보여서 분석..
-
[Algorithm] Brute Force개발하면서/Algorithm,DS,PS 2010. 12. 3. 12:42
가장 간단한 알고리즘입니다. 만약 찾고자 하는 패턴은 ABTBA, 원본 텍스트는 AAABTABTBAB일 경우 아래 그림과 같이 비교를 합니다. 아래와 같은 방법으로 문자열을 찾습니다. 패턴첫글자와 원본을 비교하면서 일치가되는것을 찾습니다. 일치가 되었으면, 다음글자가 일치되는지 확인하고, 중간에 일치하지 않는다면 바로 다음칸으로 이동해서 다시 패턴 첫 글자부터 일치여부를 판단합니다. 구현이 간단하지만 비효율적인 문자열 검색 알고리즘 이네요. int main() { char str[12] = "AAABTABTBAB"; char pattern[5] = "ABTBA"; int i = 0; int j = 0; for (; i < 11; i++) { for (; j < 5; j++) { if (str[i+j] !..
-
[Algorithm] Binary Heap개발하면서/Algorithm,DS,PS 2010. 12. 2. 23:12
Heap 이란? complete binary tree이고, 부모 노드는 항상 자식 노드보다 크거나 같음을 만족하는 자료구조이다. 출처: http://code.cloudkaksha.org/binary-tree/types-binary-tree 위 사진은 binary tree의 3가지 타입을 보여준다. full binary tree는 잎 노드를 제외한 노드들의 자식 노드가 0개 혹은 2개인 트리를 말한다. complete binary tree는 마지막 level을 제외한 모든 level에 노드가 채워져 있고 마지막 level은 최소한 왼쪽으로 노드가 채워진 트리를 말한다. perfet binary tree는 잎노드를 제외한 모든 노드들의 자식 노드가 2개인 트리를 말한다. 노드의 개수는 2^n-1개 있다.(n..
-
[Algorithm] Binary tree개발하면서/Algorithm,DS,PS 2010. 12. 2. 22:56
이진트리란 ? 모든 노드의 자식노드가 2개 이상을 넘지 않는 트리를 말한다. 왼쪽자식노드는 부모노드의 값보다 작이야 하며 오른쪽 자식노드는 부모노드의 값보다 커야한다. 이진트리 의 종류 모든 레벨의 노드가 꽉 차있는 트리를 말한다. Full Binary Tree의 총 노드수는 2 ^ n -1 이다.(n은 마지막 레벨) 높이가 h인 트리의 경우 h-1까지는 모두 채워져있고 마지막 높이 h는 다 채워져있지는 않지만 왼쪽에서 오른쪽으로 순서대로 채워져있는 트리 이진트리를 순회하는 방법은 preorder, inorder, postorder가 있다. 루트 방문순서를 기준으로 이름이 붙여진것으로 이해하면 좋다 pre : 처음, in : 중간, post : 나 쓰레드 이진트리란 ? 이진트리를 구성하다보면 null 포..