import java.util.Arrays;
public class InsertSort {
public static void main(String[] args) {
int[] numbers = {50, 20, 30, 10, 40};
for (int i = 1; i < numbers.length; i++) {
int key = numbers[i]; // 하나의 원소 정함
int j = i - 1;
// 배열을 순회하여 오름차순으로 정렬
while (j >= 0 && numbers[j] > key) {
numbers[j + 1] = numbers[j];
j--;
}
numbers[j + 1] = key;
}
System.out.println(Arrays.toString(numbers));
}
}
import java.util.Arrays;
public class InsertSort {
// 오름차순 기능
public void sort(int[] numbers) {
for (int i = 1; i < numbers.length; i++) {
int pivot = numbers[i];
int j = i - 1;
shiftNumber(numbers, pivot, j);
}
}
// 내림차순 기능 (오버로딩)
public void sort(int[] numbers, boolean isDesc) {
if (isDesc) {
reverseSort(numbers);
}
}
// 내림차순 기능
private void reverseSort(int[] numbers) {
sort(numbers); // 오름차순으로 정렬을 먼저 해준다.
int start = 0;
int end = numbers.length - 1;
while (start < end) {
int temp = numbers[start];
numbers[start] = numbers[end];
numbers[end] = temp;
start++;
end--;
}
}
// 배열의 값 이동 기능
public void shiftNumber(int[] numbers, int pivot, int j) {
while (j >= 0 && numbers[j] > pivot) {
numbers[j + 1] = numbers[j];
j--;
}
numbers[j + 1] = pivot;
}
public static void main(String[] args) {
InsertSort sort = new InsertSort();
int[] numbers = {50, 40, 10, 20, 60};
// 오름차순 출력
sort.sort(numbers);
System.out.println(Arrays.toString(numbers));
// 내림차순 출력
sort.sort(numbers, true);
System.out.println(Arrays.toString(numbers));
}
}
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] numbers = {50, 40, 10, 20, 60};
for (int i = 0; i < numbers.length; i++) {
int min = i;
// 최소값 인덱스 찾기
for (int j = i + 1; j < numbers.length; j++) {
if(numbers[min] > numbers[j]){
min = j;
}
}
int temp = numbers[i];
numbers[i] = numbers[min];
numbers[min] = temp;
}
System.out.println(Arrays.toString(numbers));
}
}
import java.util.Arrays;
public class SelectSort {
// 최소값 찾는 기능
public int findMin(int[] numbers, int loop) {
int min = loop;
// 최소값 인덱스 찾기
for (int j = loop + 1; j < numbers.length; j++) {
if (numbers[min] > numbers[j]) {
min = j;
}
}
return min;
}
// swap(변경) 기능
public void swap(int[] numbers) {
for (int i = 0; i < numbers.length; i++) {
int min = findMin(numbers, i);
int temp = numbers[i];
numbers[i] = numbers[min];
numbers[min] = temp;
}
}
public static void main(String[] args) {
SelectSort sort = new SelectSort();
int[] numbers = {50, 40, 10, 20, 60};
sort.swap(numbers);
System.out.println(Arrays.toString(numbers));
}
}
docker container prune (사용하지 않는 컨테이너 제거), 많이사용리소스 모니터링 이란?