목록알고리즘 (13)
불로구
이번에는 자바를 통해 10진수를 원하는 진수로 변환해보자. class Jinsu{ public int trans(int num, int jinsu, char[] result){ int i=0; String list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; do{ result[i] = list.charAt(num % jinsu); num /= jinsu; i++; }while(num != 0); return i; } } public class 기수변환 { public static void main(String[] args){ Scanner s = new Scanner(System.in); int num = s.nextInt(); int jinsu = s.nextInt();..
이번에는 배열 두개의 값일 비교해보자. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; class ArrayEqual{ static boolean equals(int[]a, int[] b){ if(a.length != b.length){ return false; } for(int i=0; i
이번에는 배열을 복사 후 복사된 배열의 최댓값을 찾아보겠다. 일반적으로 자바에서 배열복사는 for문과 clone라는 함수를 사용할 수 있다. ( 다른 방법도 많다 ) public class 배열복사 { public static void main(String[] args){ int[] arr = new int[10]; int[] copyArr; int[] a = {1,2,3,4,5}; for(int i=0; i 배열은 0번째 인덱스부터 시작하기 때문이다! )
퀵 정렬이란? - 분할 정복 알고리즘의 하나로 평균적으로 빠른 수행 속도를 나타내는 정렬 방법이다 - 퀵 정렬은 리스트를 비균등 하게 분할하며, 피벗이란 임의로 고른 원소를 사용하여 정렬을 수행한다 - 피벗을 기준으로 작은 요소를 왼쪽으로, 큰 요소를 오른쪽으로 옮겨간다 - 피벗을 기분으로 분할된 요소들을 다시 정렬하기 위해 재귀 호출을 통해 정렬을 반복한다 - 리스트의 크기가 더 이상 분할할 수 없을 때까지 반복 먼저 PIVOT 계수를 정한다. PIVOT 계수는 임의로 선정한다 여기서는 첫 번째 요소를 PIVOT으로 결정 - PIVOT 값과 LEFT는 값을 비교하고 LEFT가 더 크면 RIGHT와 비교한다. 여기서 RIGHT 값이 PIVOT보다 작으면 LEFT와 RIGHT는 서로 SWAP 한다 ..