'알고리즘' 태그의 글 목록 (7 Page)
본문 바로가기
728x90
반응형

알고리즘250

22.03.02_템플릿메소드_패턴적용하기 01.템플릿메소드패턴 비슷한 코드인데 조금 몇라인 3-4줄 정도가 다를때 적용하기 좋은 패턴 01.1 Template.java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public abstract class FileProcessor{ private String path; public FileProcessor(String path){ this.path = path; } public int process(){ try(BufferedReader reader = new BufferedReader(new FileReader(path))){ int result = 0; String line = null;.. 2022. 3. 3.
22.03.02_템플릿메소드패턴_패턴소개 알고리즘의 구조를 어떤 과정을 알고리즘이라고 하는 그 구조를 읽고 오고 처리하는 처리하는 것을 템플릿으로 제공하고 그중에서 구체적인 방법 제공하는 방법 처리하는 방법 출력하는 방법등을 서브 클래스가 구체적으로 구현할 수 있게 하는 패턴 상속을 사용하고 이패턴이 필요해지는 상황을 소스코드로 보자 public clas Client{ public static void main(String[] args){ FileProcessor fileProcessor = new FileProcessor("number.txt"); int result = fileProcessor.process(); System.out.println(result); } } import java.io.BufferedReader; import ja.. 2022. 3. 3.
22.02.09_머지소트알고리즘구현및테스트코드작성 1.머지소트란? 단순하지 않은 정렬 시리즈 중 제일 단순한 정렬 분할정복 알고리즘 모든 숫자를 다 나눈 다음에 병합하는 방식으로 정렬을 진행 존 폰 노이만이 제안한 방법 일반적인 방법으로 구현했을 때 이정렬은 안정 정렬에 속함 분할 정복 알고리즘의 하나 1.1 분할 정복 방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아 원래의 문제를 해결하는 전략 분할 정복 방법은 대게 재귀를 이용하여 구현 1.2 과정 설명 리스트의 길이가 0또는 1이면 이미 정렬된 것으로 봄 그렇지 않은 경우 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눔ㄴ 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬 두 부분 리스스틀 다시 하나의 정렬된 리스트로 합병 2.소스코드 2.1 .. 2022. 2. 9.
22.02.08_퀵소트 찰스 앤터니 리처드 호어가 개발 불안정 정렬에 속함 다른 원소와의 비교만으로 정렬을 수행하는 비교정렬에 속함 분할 정복 알고리즘의 하나로 , 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 머지소트와 달리 퀵정렬은 리스트를 비균등하게 분할 0. 방식 리스트 안에 있는 한 요소 선택 이것을 피벗이라고 함 피벗 기준으로 피벗보다 작은 요소들은 모두 피벗의 왼쪽으로 피벗보다 큰 요소들은 모두 피벗의 오른쪽으로 이동 피벗을 제외한 왼쪽 리스트와 오른쪽 리스트 다시 정렬 분할된 부분 리스트에 대하여 순환 호출을 이용하여 정렬을 반복 부분 리스트에서도 다시 피벗을 정하고 피벗을 기준으로 2개의 부분 리스트로 나누는 과정 반복 부분 리스트들이 더 이상 분할이 불가능 할 때까지 반복 리스트의 크기가 0이나 1이 될때 .. 2022. 2. 9.
728x90
반응형