728x90

전체 글 57

Insertion Sort Algorithm

삽입 정렬 알고리즘은 주어진 배열의 2번째 요소부터 앞의 모든 요소들과 비교하여 알맞은 곳에 삽입시키는 알고리즘이다. 배열 A = {5, 2, 4, 6, 1, 3} 이 주어졌다고 가정하자.회색 칸은 이미 정렬이 된 원소이고, 검은색 칸은 현재 정렬해야할 key값이다. 흰색 칸은 각 단계에서 사용할 필요가 없는 원소이다.흰색 칸을 아직 정렬되지 않은 칸으로만 볼 수 있지만, 그림(c)를 보면 이미 정렬된 2, 4 또한 흰색으로 칠해져 있다. key값인 6이 5와 비교되면 바로 자리에 삽입되기 때문에 2, 4와 비교될 필요가 없다. 이처럼 삽입 정렬 알고리즘에서의 비교횟수는 불규칙적이다. 2번째 요소부터 마지막 6번째 요소까지 비교 반복을 해주면, (f)그림처럼 잘 정렬된 배열이 완성된다.나는 수도 코드 읽..

Getting Started

알고리즘 공부 좀 미리 해둘걸ㅠㅅㅠ 이 과목은 철저한 복습과 암기가 살 길이라는 것을 2주차에 직감했다... 진짜 행복하네수업시간에 모르는 것들이 나오면 따로 공부해서 추가적인 포스팅을 하도록 하겠슴미다. Insertion Sort: 삽입 정렬삽입 정렬 알고리즘이란 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입하고 정렬하는 알고리즘이다.쉽게 말하자면, 카드 정리라고 할 수 있다. 나는 원카드 게임을 할 때 패를 받으면 오름차순으로 정렬을 한다(2, 5, 8, 9). 또 새로운 카드를 손에 넣었을 때 숫자 크기를 비교하여 알맞은 위치에 카드를 꽂아넣는다(2, 5, 7(new!), 8, 9). 이게 삽입 정렬이다.  삽입 정렬 알고리즘의 알맞게 수행..

Distributed Systems 2

Considerations of Distributed Systems1. Heterogeneity(이질)분산 시스템의 각각의 노드들이 동일한 OS나 하드웨어 등을 쓸 필요가 없다. 분산되어 있으니까!그래서 다양한 네트워크, 하드웨어, OS, 프로그래밍 언어가 사용된다.  그렇다면 이질적인 것들을 위한 서포트가 있어야하는데,미들웨어: 프로그래밍 추상화를 제공하는 소프트웨어 레이어이다. DCE, CORBA, DCOM 등모바일 코드: 한 컴퓨터에서 다른 컴퓨터로 이전되어 실행될 수 있는 프로그램 코드. JVM 등2. Openness(개방성)개방성이란 시스템의 확장성이나 재구성을 판단하는 기준이다.기존 환경에서의 이질과 관계없이 다른 서비스의 요소와 상호작용을 허용한다.핵심 요소는 coherence(일관성)인데,..

DKU/분산처리 2024.09.09

Distributed Systems

분산 시스템먼저, 네트워크 시스템은자율성을 가진다.자원들을 소유한다.정보 처리를 수행할 수 있다.다른 시스템들과 통신할 수 있다.분산 시스템은시스템의 집합이다.요소들 사이에서 명확한 통신이 필요하다.네트워크 시스템은 자율 시스템으로 컴퓨터 네트워크에서 명확하게 보이는 시스템이다.분산 시스템은 여러 자율 시스템의 존재가 투명하게 보이는 시스템이다. 여기서 투명하게 보인다는 것은, 시스템이 분산되어 있는 것을 보이지 않게 하는 것이다. 따라서 사용자는 여러 개의 자율 시스템이 사실상 하나의 시스템으로 보이게 된다. 따라서 분산 시스템이란,autonomous computing elements(노드)의 집합이며, 사용자에게 일관성 있는 단일 시스템으로 보여지게 된다.일관성 있는 시스템은 전체 동작 방식에 거스르..

DKU/분산처리 2024.09.05

The Role of Algorithms in Computing

알고리즘이란?입력을 가지고 출력을 생산하는 논리적인 계산 절차입력을 출력으로 변환하는 계산적인 단계의 절차잘 명시된 계산적인 문제를 해결하는 도구입력이란 주어진 문제의 인스턴스 즉, 처리대상을 뜻한다.출력이란 주어진 문제의 해결방법을 뜻한다. 좋은 알고리즘(정답인 알고리즘?)에는 몇가지 조건이 존재한다.모든 입력 인스턴스에 대하여 알맞은 출력과 함께 알고리즘이 멈춰야한다.따라야할 계산 절차를 정확하게 설명해야한다.좋은 알고리즘이란 당연히 주어진 문제를 해결할 수 있는 알고리즘이고, 멈추지 않거나 목표한 답과는 다른 답을 가지고 멈추는 알고리즘은 틀린 알고리즘이다.문제를 해결하는 방법 데이터 구조(data structures)를 사용하여 효율적인 알고리즘을 구현할 수 있다.데이터 구조란 데이터를 저장하고 ..

Packet

패킷이란 포맷된 데이터의 조각이다.쉽게 말하면 파일 하나를 전송할 때, 그 파일을 잘게 잘라 조각조각 전송하는 것이다. 이런 패킷 교환 방식을 사용하면 파일을 전송하다가 오류가 났을 경우, 오류가 난 그 패킷 하나만을 다시 재전송하면 되기 때문에 네트워크를 좀 더 효율적으로 사용할 수 있게 된다. fragmentation(분열): 데이터를 조각을 낸다.encapsulation(캡슐화): 헤더를 붙여준다. >> 이 과정에서 패킷이 제작되는 것이다.decapsulation: 헤더를 제거한다.assembly(조립): 조각을 붙여 원본 데이터로 복구한다. 여기서 header란, 파일의 조각을 구분할 수 있게 해주는 추가적인 정보라고 할 수 있다.전송하려는 데이터를 수많은 조각으로 잘랐을 때, 다시 이어붙이기 위..

Frequency

$$f_O = \frac{1}{\tau_O}$$위 수식에서 $f$는 주파수, $\tau$는 주기를 뜻한다.$f$는 단순히 $\tau$의 역수인 것을 알 수 있다. 그림에서의 $\tau_R$은 $\tau_P$보다 크니까, $f_R$은 $f_P$보다 작을 것이다.이는 $f_R$은 상대적으로 낮은 주파수를 가지고, $f_P$는 상대적으로 높은 주파수를 가진다고 말한다. 그림에서의 선들을 signal(신호)라고 하는데, 푸리에 변환을 통해 신호를 신호 스펙트럼으로 변환할 수 있다.푸리에 변환에 대한 설명은 생략하셨기 때문에, 다음에 알아보는 것으로 하자.  위 신호들을 신호 스펙트럼으로 변경하면  이 그림처럼 된다.신호 스펙트럼은 신호가 다양한 주파수 성분으로 이루어져있을 때, 신호가 각 주파수 성분을 얼마나 ..

728x90