목록프로그래밍/알고리즘 (18)
불로구
이번에는 배열을 랜덤값(난수)를 만들어 대입시켜보자. class MaxOfArrayRand{ static int maxOf(int[] arr){ int max = arr[0]; for(int i=1; i max){ max = arr[i]; } } return max; } } public class 난수배열 { public static void main(String[] args){ int[] arr = new int[10]; for(int i=0; i 랜덤 함수는 실수로 나타나기 때문에 정수를 원한다면 int로 형변환을 시켜주자 ) - 출력문을 보면 MaxOfArrayRand 클래스의 maxOf함수를 호출하여 리턴값을 출력한것을 알 수 있다. 그럼 이번에는 MaxOfArrayRand 클래스를 살펴보자 - ..
이번에는 배열을 복사 후 복사된 배열의 최댓값을 찾아보겠다. 일반적으로 자바에서 배열복사는 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번째 인덱스부터 시작하기 때문이다! )
1부터 n까지 합을 구해보자 public class 반복 { public static void main(String[] args){ int i=1; int sum = 0; while(i
퀵 정렬이란? - 분할 정복 알고리즘의 하나로 평균적으로 빠른 수행 속도를 나타내는 정렬 방법이다 - 퀵 정렬은 리스트를 비균등 하게 분할하며, 피벗이란 임의로 고른 원소를 사용하여 정렬을 수행한다 - 피벗을 기준으로 작은 요소를 왼쪽으로, 큰 요소를 오른쪽으로 옮겨간다 - 피벗을 기분으로 분할된 요소들을 다시 정렬하기 위해 재귀 호출을 통해 정렬을 반복한다 - 리스트의 크기가 더 이상 분할할 수 없을 때까지 반복 먼저 PIVOT 계수를 정한다. PIVOT 계수는 임의로 선정한다 여기서는 첫 번째 요소를 PIVOT으로 결정 - PIVOT 값과 LEFT는 값을 비교하고 LEFT가 더 크면 RIGHT와 비교한다. 여기서 RIGHT 값이 PIVOT보다 작으면 LEFT와 RIGHT는 서로 SWAP 한다 ..