BASIC/알고리즘(8)
-
Charles Antony Richard Hoare & Quick Sort
Charles Antony Richard Hoare ,영국 컴퓨터 과학자 입니다. 우리가 많이 들 알고 있는 정렬 알고리즘으로 사용되는 QuickSort 의 개발을 하신 분이죠. 진정한 테스트는 코드에서 버그들을 감지하는 것이 아니고, 코드를 설계하고 생산한 사람들의 방법들, 집중력, 그리고 기술들에서 부족한 부분들을 감지하는 것이다. The real value of tests is not that they detect bugs in the code, but that they detect inadequacies in the methods, concentration, and skills of those who design and produce the code. The Emperor's Old Clothes..
2016.01.01 -
Quick Sort
위키백과 사전에 나온게 가장 심플하고 이해하기 쉽다. Quick Sort 는 A.R 호어 가 개발한 정렬 알고리즘이다. 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. Quick Sort 는 n 개의 데이터를 정렬할 때, 최악의 경우 O(n2)번의 비교를 수행하고, 평균적으로 O(n log n) 번의 비교를 수행한다.Quick Sort 의 내부 루프는 대부분의 컴퓨터 아키텍처에서 효율적으로 작동하도록 설계 되어 있고 (그 이유는 메모리 참조가 지역화 되어 있기 때문에 CPU, 캐시의 히트 율이 높아지기 때문이다...뭔소리래..) , 대부분의 실질적인 데이터를 정렬할 때 제곱 시간이 걸릴 확률이 거의 없도록 알고리즘을 설계하는 것이 가능하다.때문에 일반적인 경우 퀵 정렬은 다른 O(n log..
2014.09.02 -
정렬 알고리즘
정렬 알고리즘 : 자료를 좀 더 의미있는 구조로 만드는 알고리즘1. 정렬의 개요- 컴퓨터 기억 장소 내에 저장 되어 있는 자료를 키에 따라 원하는 순서로 재배치하는 작업을 정렬(Sort)이라고 합니다.- 자료를 작은 순부터 큰 순으로 정렬하는 방법을 오름 차순이라고 하고, 큰 순부터 작은 순으로 정렬하는 방법을 내림 차순이라고 합니다.- 정렬 알고리즘의 선택에는 컴퓨터 시스템의 특성 고려, 자료의 양 분석. 자료의 초기 정렬 상태 고려, 키 값의 분포 상황 고려, 키 비교 횟수 계산, 필요한 작업 공간 고려로 분류할 수 있습니다. 2. 합병 정렬- 작은 크기의 리스트들을 각각 정렬한 후, 이들을 합병하고, 크기가 2배인 리스트를 과정을 되풀이하여 전체 리스트를 정렬하는 방법을 합병 정렬(Merge Sor..
2013.11.24 -
재귀호출 & 프랙탈
1. 재귀(Recusion)호출 - 여러 개의 기본적인 명령어들이 모여서 하나의 논리적인 작업을 수행하는 모듈(module)을 함수 - 함수는 호출 방법의 차이에 따라서 직접 재귀(direct tecursion)와 간접 재귀(indirect tecursiom)로 나눌 수 있습니다. 2. 계승을 구하는 재귀 함수 - 재귀 호출에는 재귀 호출이 끝이 나는 종료 조건(Terminate Condition)이 있어야 하고, 재구 호출이 이루어질 때마다 점점 작아져야 하는 2가지 조건이 있습니다.- 재귀 호출의 전략에는 문제의 크기를 조금씩 줄여가는 방법, 문제의 크기를 양분하여 가는 방법, 문제 자체에 점점 가까워져 가는 방법으로 나눌 수 있습니다. 3. 프랙탈- 어떤 도형의 부분들이 전체의 작은 닮은 꼴들을 포..
2013.11.24 -
자료구조의 기초 2
1. 연결리스트 - 연결리스트는 데이터(Data)와 링크(Link)의 두 필드로 구성되고, 링크(link)역할의 포인터 변수를 이용하여 각 원소를 링크로 연결하여 나타냅니다. - 연결 리스트의 장점은 중간 노드의 삽입과 삭제가 대단히 쉽고 빠르고, 기억 장소로부터 독립적이라는 것입니다. - 단점으로는 포인터로 운영해야 하므로 액세스 시간이 느리고, 링크 부분만큼의 기억 공간이 소모되는 것을 들 수 있습니다. - 연결 리스트의 종류는 단순 연결 리스트, 이중 연결 리스트, 이중 원형 연결 리스트 등이 있습니다. 2. 트리 - 트리의 노드들은 계층적으로 가지에 의해 연결되어 경로(path)를 형성하는데, 그래프와는 달리 어떠한 경우에도 사이클(Cycle)을 형성하지 않습니다. - 트리는 그 형태나 또는 트리..
2013.11.24 -
자료구조의 기초 1
1. 자료구조의 개요 - 자료란 본질에 대한 현상을 나타내는 기호라고 정의할 수 있습니다. - 자료구조를 이용한 자료 처리 작업은 접근(access), 삽입(insertion), 삭제(deletion), 검색(searching), 복사(copying), 정렬(sorting), 병합(merging), 분리(splitting) 7가지로 분류할 수 있습니다. 2. 배열, 스택, 큐의 개념 - 배열 : 배열은 같은 데이터 타입을 갖는 둘 이상의 여러 데이터 항목들이 그룹적으로 모여서 하나의 변수이름으로 인덱스에 의해 호출되는 자료구조라고 할 수 있습니다. - 스택 : 스택이란 자료의 삽입과 삭제가 한쪽 끝에서만 일어나는 자료구조입니다. 스택에서 자료의 삽입과 삭제는 PUSH와 POP연산을 통하여 행할 수 있습니..
2013.11.24