본문 바로가기

전체 글116

10. 병합 알고리즘(Merge Algorithm) //[?] 2개의 정수 배열 합치기: 단, 2개의 배열은 오름차순으로 정렬 되어 있다고 가정 /** * 병합 알고리즘(Merge Algorithm): 오름차순으로 정렬되어 있는 정수 배열을 하나로 병합 */ public class MergeAlgorithm2 { public static void main(String[] args) { int[] first = { 1, 3, 5 }; int[] second = { 2, 4 }; int M = first.length; int N = second.length; // M:N 관행 int i = 0; int j = 0; int k = 0; // i, j, k 관행 int[] merge = new int[M + N]; // 병합된 배열 while (i 2022. 8. 8.
9. 검색 알고리즘(Search Algorithm) //[?] 정렬 되어 있는 데이터를 이진 검색(이분 탐색)을 사용하여 반씩 나눠서 검색 /** * 검색 알고리즘(Search Algorithm): 주어진 데이터에서 특정 데이터 찾기 */ public class SearchAlgorithm2 { public static void main(String[] args) { int[] data = { 1, 3, 5, 7, 9 }; // 오름차순으로 정렬 되어 있다고 가정 int N = data.length; // 의사코드 int search = 3; // 검색할 데이터 boolean flag = false; // 찾았으면 true 그렇지 않으면 false int index = -1; // 찾은 위치(인덱스) //이진 검색(Binary search): Full s.. 2022. 8. 8.
8. 정렬 알고리즘(Sort Algorithm) //[?] 무작위 데이터를 순서대로 [오름차순|내림차순] 정렬 /** * 정렬 알고리즘: 가장 [작은|큰] 데이터를 왼쪽으로 순서대로 이동 */ public class SortAlgorithm2 { public static void main(String[] args) { int[] data = { 3, 2, 1, 5, 4 }; int N = data.length; // 의사코드(슈도코드) 형태로 알고리즘을 표현하기 위함 for (int i = 0; i data[j]) { int temp = data[i]; //a data[i].. 2022. 8. 8.
7. 순위 알고리즘 (Rank Algorithm) //[?] 주어진(지정한 범위) 데이터의 순위(등수)를 구하는 로직 /** * 순위 알고리즘(Rank Algorithm): 점수 데이터에 대한 순위 구하기 */ public class RankAlgorithm2 { public static void main(String[] args) { int[] scores = { 90, 87, 100, 95, 80 }; int[] rankings = { 1, 1, 1, 1, 1 }; // 모두 1로 초기화 for (int i = 0; i < scores.length; i++) { rankings[i] = 1; // 1등으로 초기화 | 순위 배열을 매 회전마다 1등으로 초기화 for (int j = 0; j < scores.length; j++) { if (scores.. 2022. 8. 8.
6. 근삿값 알고리즘 (Near Algorithm) //[?] 원본 데이터 중에서 대상 데이터와 가장 가까운 값 구하기 /** * 근삿값 알고리즘(Near Algorithm): 차잇값의 절댓값의 최솟값 */ public class NearAlgorithm2 { // 절댓값 구하기 로컬 함수 public static int Abs(int number) { return (number < 0) ? -number : number; } public static void main(String[] args) { int min = Integer.MAX_VALUE; // (초기화 영역) 차잇값의 절댓값의 최솟값이 닮길 그릇 int[] numbers = { 10, 20, 30, 27, 17 }; int target = 25; // target 설정. 타겟과 가까운 값 구하.. 2022. 8. 8.