병합정렬/합병정렬(Merge Sort)는 먼저 입력을 반으로 나눈다. 이렇게 나눈 전반부와 후반부를 각각 독립적으로 정렬한다. 마지막으로 정렬된 두 부분을 합쳐서, 즉 병합하여 정렬된 배열을 얻는다. 여기서 전반부를 정렬할 때도 역시 반으로 나눈 다음 정렬해서 병합한다. 즉, 원래의 정렬 문제와 성격이 똑같고 단지 크기만 반으로 줄었을 뿐이다. 후반부에 대한 정렬도 마찬가지다. 병합정렬은 자신에 비해 크기가 반인 문제를 두개 푼 다음, 이들을 병합하는 일을 재귀적으로 반복한다. 위 그림의 예를 살펴보면 초기 배열 A = { 5, 2, 4, 7, 1, 3, 2, 6} 이다. 병합정렬의 전반부, 후반부 정렬이 재귀적으로 반복되면서 배열의 원소가 하나씩 남을때 까지 쪼개진다. 그리고 각각 병합을 하면서 정렬이..
삽입정렬(Insertion Sort)는 이미 정렬되어 있는 i 개 짜리 배열에 하나의 원소를 더 더하여 정렬된 i+1개 짜리 배열을 만드는 과정을 반복한다. 선택정렬(Selection Sort)과 버블정렬(Bubble Sort)이 n개짜리 배열로부터 시작하여 그 크기를 하나씩 줄여나가는데 반하여, 삽입정렬은 1개짜리 배열로부터 시작하여 그 크기를 하나씩 늘려가는 정렬이다. 위의 예제를 살펴보면 배열 A[]에서 루프문을 통해 i가 두번째 원소 부터 배열의 끝 원소까지 루프문을 돌면서 A[i]번째의 원소를 자리에 알맞게 넣는다. i가 두번째 원소를 가리킬때 A[2]인 10의 자리는 A[1]인 29와 위치가 바껴야 하므로 자리가 교체된다. i가 세번째 원소를 가르킬때 A[3]인 14의 위치는 A[1]인 10 ..
버블정렬(Bubble Sort)도 선택정렬(Selection Sort)처럼 제일 큰 원소를 옮기는 작업을 반복하는 정렬이다. 다만, 제일 큰 원소를 오른쪽으로 옮기는 방법이 다를 뿐이다. 선택정렬(Selection Sort) 이란 ? 클릭 선택정렬(Selection Sort) 버블정렬(Bubble Sort)는 위의 예제 처럼 배열의 처음 인덱스부터 n-1 인덱스까지 이동하면서 인접하는 다음 인덱스의 원소와 크기를 비교하여 순서를 바로 잡아 나간다. 이 과정을 반복하게 되면 배열의 맨끝에는 배열의 가장 큰 원소가 자리하게 된다. 그러면 배열의 제일 마지막을 잊어버리고 이를 반복하게 되면 배열이 차례대로 끝에서 부터 내림차순으로 정렬되게 된다. 버블정렬(Bubble Sort)의 슈도코드는 다음과 같다. 버블..
선택정렬(Selection Sort)는 원리가 가장 간단한 정렬 알고리즘 중의 하나다. 우선 배열 A[1...n]에서 가장 큰 원소를 찾아 이 원소와 배열의 맨 끝자리에 있는 A[n]과 자리를 바꾼다. 그러면 방금 맨 뒷자리로 옮긴 원소, 즉 가장 큰 원소는 자기 자리를 찾았으므로 더 이상 신경쓰지 않아도 된다. 이 원소는 정렬이 끝났다고 볼 수 있으므로 이제 이 원소를 제외한 나머지 원소들로 같은 작업을 반복하면 된다. 간결하게 나타내면 각 루프마다최대 원소를 찾는다.최대 원소와 맨 오른쪽 원소를 교환한다.맨 오른쪽 원소를 제외한다.하나의 원소만 남을 때까지 위의 루프를 반복한다. 예를 들면, 정렬하고자 하는 배열(Initial array)에서 가장 큰 수(37)을 찾아 배열의 맨 끝 원소인 13과 자..
알고리즘이란 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것이다. 알고리즘을 설계하기 위해서는 우선 해야 할 작업을 명확하게 명시해야 한다. 설계하려는 알고리즘이 "무엇을" 하는지는 입력과 출력에 의해 명시할 수 있다. 예를 들어, 학생 100명의 시험점수를 입력으로 받아 최고점을 출력하는 작업을 한다면 입출력을 다음과 같이 표현할 수 있다. 입력 : 100개의 점수출력 : 입력된 100개의 점수 중 최대값 이 입출력을 다음과 같이 좀더 구체적으로 표현할 수도 있다. 입력 : 100개의 변수 x[1],...,x[100]의 값출력 : x[1],...,x[100] 중 최대값 이런 입출력을 요구하는 알고리즘은 대략 다음과 같은 모양을 가질 것이다. maxScore(x[], n..
불과 몇년 전, 윈도XP 시절만해도 사용자의 PC에는 악성코드(바이러스, 웜, 애드웨어 등)가 우글거렸다. 윈도XP가 보안이 취약한 탓도 있고, 사용자가 자신의 PC에 왜 백신 소프트웨어를 설치해야 하는지 이해하지 못했던 탓도 있다. 하지만 윈도XP의 수명이 끝나고, 사용자의 보안 의식이 개선되면서 악성코드는 우리의 PC에서 점점 자취를 감췄다.하지만 살아남은 악성코드는 점점 교묘하게 변했다. 대표적인 게 그레이웨어(Grayware)다. 그레이웨어란 정상 소프트웨어와 악성 소프트웨어의 중간에 위치한 악성코드다. 사용자에게 이익을 주기도 하지만, 해를 끼치기도 한다. 당장 해를 입히지 않더라도, 피해를 줄 가능성이 있으면 그레이웨어로 분류된다. 이름 그대로 회색분자다. 불법 소프트웨어를 실행할 수 있게 해..
최상위 도메인으로 .org .com .net 을 많이 보셨을 껍니다. 원래 모든 홈페이지나 블로그는 그 서버의 IP주소를 입력해야 들어갈 수 있습니다. 하지만 저희는 DNS 의 도움으로 www.tstory.com 이런식으로 도메인을 통해서 접속을 하죠. 도메인은 gabia 같은 도메인대행등록 사이트를 통해 구입을 할 수 있습니다. .net .com 같은 경우는 거의 포화상태에 이르렀습니다. 이 중에서 무료로 도메인을 이용할 수 있는 방법이 있는데요. 바로 토켈라우 국가코드 .tk 를 이용하는 것입니다. 저도 지금 itstory.tk 주소를 사용하고 있습니다. 이제부터 .tk 도메인을 얻는 방법을 살펴보겠습니다. 무료 최상위 도메인 .tk : http://www.dot.tk/ko/index.html 위 주..
인터넷 기반시설 서비스 제공기업인 베리사인(VeriSign)이 매 분기 발간하는 '도메인 이름 산업 보고서(Domain Name Industry Brief)' 최신호에 따르면, 2013년 4분기에 약 500만 개의 도메인이 새로 추가되어 전 세계적으로 도메인 개수는 약 2억 7천만 개를 넘어섰다.2013년 3분기 대비 1.9%의 성장률을 보였으며, 1년 동안 추가 등록된 총 도메인 숫자는 천 8백5십만 개로, 7.3%의 성장을 기록했다. 최상위도메인(TLDs)인 .com과 .net은 이번 분기에도 성장세를 지속했다. 두 도메인 모두 약 1억 2천 7백만 개가 등록됐으며, 이는 지난해 대비 5% 상승한 것이다. 2013년 12월 31일 기준으로 등록된 .com은 1억 천2백만 개, .net은 천5백만 개다..
