본문 바로가기

분류 전체보기

퀵소트 구현 소스 퀵 정렬(Quick Sort) 퀵정렬경우 데이터양이 크고 뒤죽박죽일 경우 가장 빠른속도를 낼 수 있다. (데이터양이 작고 덜섞인 경우 삽입정렬이 빠르다.) 먼저 퀵정렬의 원리. 다음과 같이 pivot이라는 기준점을 정하고 (주로 가장 왼쪽이나 오른쪽을 택한다. ) 그외의 요소를 각각 바깥쪽에서 접근한다. left는 기준(pivot)보다 작은값을 찾고, right는 기준(pivot)보다 큰 값을 찾는다. pivot은 조만간 가운데에 낄것이다. 그 가운데를 기점으로 왼쪽으로는 pivot보다 작은값 , 오른쪽으로는 pivot보다 큰값을 들어가게 하려는 작정이다. (이는 오름차순으로 정렬할 목적일때 경우) 왼쪽부터 움직이는 인덱스(left)가 움직이다가 대상을 찾으면 멈추고 다음으로 오른쪽에서 왼쪽으로 움직이는.. 더보기
더블 링크드 리스트 더블 링크드 리스트(Double Linked List) 기본 뼈대, 핵심. 이정도 이해,구현이 가능하다면 Delete 등의 구현도 어렵지 않다. #include #include typedef struct Node { int bookNum; struct Node * next; struct Node * pre; }Book; Book* CreateNewNode( Book * myBook, int data) //노드생성 { myBook = (Book*)malloc(sizeof(Book)); myBook->bookNum = 0; myBook->next = NULL; myBook->pre = NULL; myBook->bookNum = data; return myBook; } void InsertNode(Book**.. 더보기
윈도우 원격 에러 MSTSC(윈도우 원격) 에서 원격 컴퓨터에 연결했을 경우 에러가 발생하고 더이상의 진행이 안될경우 (검은바탕만 뜰 경우 등) Ctrl + Alt + End 키를 누른다. 이는 일반 컴퓨터에서 작업관리자등을 선택할 수 있다. (Ctrl+Alt+Delete 역할) 로그오프를 시킬 수 있습니다. 원격을 잠시 껐다가. 약 1분~5분 후에 다시 시도하시면 정상적으로 원격 서비스를 이용 할 수 있다. 더보기
(MEMO) 포인터와 변수참조 먼저 Func 함수의 리턴값과 관련한건 신경안써도된다.... Func 함수만 보면 된다. (메인에서 리턴받아서 따로 연산안함. 여기서는 Func함수만 다룬다) int& Func(int &ref) { int adress1; adress1 = (int)&ref; //adress1은 ref의 주소값을 받는다. printf("ref = %d \n", ref); printf("adress1(ref의주소): %d \n" , adress1); printf("&adress1(adress변수 자체의 주소) : %d\n ", &adress1); printf("*(int*)adress1 : %d\n\n", *(int*)(adress1) ); return adress1; } void main() { int val1 = 10;.. 더보기
이제슬슬 4개월만에 블로그를 재개 하고자한다. ㅡ. ㅡ;;일단 영상처리쪽으로 많이 올려야지............. 많이 올릴건 없지만.................. 한 하루 200명 넘기면 광고 넣어야겠당............... 더보기
핸드폰카메라로 보면 모자이크가 사라진다? 실제로 그럴듯하게 보이긴하지만 이는 말도 안되는 얘기다. 애초에 모자이크의 원리를 살펴보자. 모자이크의 종류도 여러가지지만 모자이크 등의 이미지 처리는 색상의 손실을 유발한다. 쉽게 말하자면 이미지를 크게 확대했을때 점 하나하나가 다 다른색깔이지만 이를 뭉개거나 합쳐서 그룹단위로 색깔을 바꾸게 된다. 개개의 점(pixel)은 자신의 색깔을 잃게 된다. 아래 사진은 예로든 모자이크 사진이다. 이미지의 점은 이웃하는점(바로옆에) 점과 색깔 차이가 거의 없다. 따라서 몇개안되는 점을 그룹화하면 거의 차이가 없기때문에 모자이크 처리가 잘 안되고 거의 원래 이미지와 차이가 없게된다 아래 사진은 그룹화되어 처리된게 보인다. 그룹화된 영역이 꽤 크기 때문에 모자이크가 아주 잘 된 케이스다. 현재 일반적으로 핸드폰 카.. 더보기
포토샵 Blur의 구현(수정) Mophology(Blur) 는 다른알고리즘으로 조금씩다르지만 기본적인 Blur 기능은 간단한 원리이다 픽셀의 그룹의 평균값을 다시 재배정한다. 아례 예는 9 x 9의 사이즈 mask(그룹)으로 알고리즘을 보여준다. /* 9x9 마스크이므로 이미지의 가로와 세로는 9로 나누어 떨어저야한다. */ /* 변수처리해주어 애초에 image->width/40 이런식으로 이미지 크기에따른 동적 마스크도 가능 */ for(i = 0 to image->width; i++) for( j = 0 to image->height; j++) { for(w=0 to 9) { for(h=0 to 9) { sum += pixelData ; //9 x 9 공간의 모든 픽셀값을 더함 } } pixelData = sum/81; //평균값.. 더보기
Fisher 판별 알고리즘 관련 논문 Fisher의 분산분석 개념 이용 선형 판별 분석법은 특징 벡터 차원의 축소 기법 중 하나이다. 간단히 정의하면 클래스간 분산(between-class scatter)과 클래스내 분산(within-class scatter)의 비율을 최대화 하는 방식이다. 집단을 나누는데 좋은 변수란 그 변수에 의해 집단이 소집단으로 나누어 졌을때 그 소집단 자체는 가능하면 동질적이야 하고 소 집단 간에는 가능하면 이질적이어야 합니다. 즉 다른 말로 하면 소집단내의 분산(WSS)은 작아야 하고 소집단 간의 분산(BSS)은 가능하면 커야 합니다. 그래서 Fisher의 아이디어는 (소집단간의 변동/전체 변동)=(BSS/TSS)를 최대로 만들어 주는 집단의 절단선을 찾는 것입니다. (1) 선형판별분석 - LDA, L.. 더보기
pc에 상주하는 그리드 딜리버리 지워버리자 삭제하기 피시방이나 식당에서 무료로 나눠주는 쿠폰 내지 많은 p2p 사이트, 웹디스크 사이트중 문제가 되는 곳이 몇군데 있습니다. 무분별하게 믿고 사용하시면 사용자 모르게 프로그램이 실행되어 내 컴퓨터의 자원을 잡아먹습니다. => 느려지게 되는것이지요. 그리드 딜리버리란? 네트워크에 접속된 사용자간의 컴퓨터를 하나로 묶어 같은 작업을 공동으로 수행시킵니다. 연산처리능력과 회선 속도가 향상되기때문에 공유의 측면에서 효율적인 기술이지요. 하지만 우리는 보통 약관을 읽어보지않기때문에 이러한 프로그램이 우리 컴퓨터에서 상주하며 실행되는 사실을 모릅니다. 웹하드, 웹디스크, p2p 사이트들은 프로그램 다운로드 트래픽을 자신들이 짊어져야되는데 우리의 컴퓨터에게 시키고 있는샘이죠. Ctrl+Alt+Delete 를 눌러 작업관.. 더보기
컴퓨터 빨라지게 하기, 컴퓨터 속도 빠르게 하기 컴퓨터속도에 있어선 아주 아주 많은 이유가 있습니다. 저도 다 모르기때문에 몇가지 이야기해보도록 하죠. 하드웨어적인 문제로 컴퓨터가 느리면 어쩔수없습니다....(포맷후에도 느린경우) 메모리 늘려보시고... 운영체제를 가벼운것을 써보심이.. 현재 사용중에 포맷을 하지않고 관리적인 측면으로 보겠습니다. 0. 컴퓨터 본체를 뜯고 내부 청소하기 컴퓨터 내부를 청소함으로서 속도가 크게 향상됨은 기본적으로 알아야합니다. 저같은경우 매우 귀찮아서 아직까진 안해봤습니다만... 어디에서나 청소는 컴퓨터 향상에 크게 효과적인것으로 나왔습니다. 컴퓨터 청소에 대해선 설명이 잘된 블로그 링크해드리겠습니다. http://pupple.net/130067436337 http://leekp3158.blog.me/80117746489.. 더보기