본문 바로가기
java&eclipse 코딩 알고리즘/20231205

StnTest

by 몽상크리에이터 2023. 12. 14.

package k20231205;

 

import java.util.Arrays;

import java.util.Iterator;

 

public class StnTest {

 

public static void main(String[] args) {

 

// int[] data = { 4, 2, 5, 1, 3 };

int[] data = {1, 2, 3, 4, 5};

 

// 최대값을 기억할 기억장소는 아주 작은 값을, 최소값을 기억할 기억장소는 아주 큰 값을 초기치로 지정한다.

// int max = 0;

// int min = 100;

//

// for (int i = 0; i<data.length; i++) {

// if (data[i]>max) {

// max = data[i];

// }

// if (data[i]<min) {

// min = data[i];

// }

// }

 

 

// 최대값, 최소값을 기억할 기억장소를 각각 데이터가 저자오딘 배열의 0번째 인덱스 요소의 값을 초기치로 지정한다.

// int max = data[0];

// int min = data[0];

// // i가 1로 시작하는 이유는 최대값과 최소값을 기억할 변수에 배열을 0번째 인덱스의 값을 초기치로 지정했고

// // 자기 자신과 비교해봐야 최대값과 최소값을 판단하는데 전혀 도움이 되지 않기 때문이다.

// for (int i = 1; i < data.length; i++) {

// if (data[i] > max) {

// max = data[i];

// } else if (data[i] < min) {

// min = data[i];

// }

// }

//

// System.out.printf("최대값: %d, 최소값: %d\n", max, min);

//

// // 전체 데이터의 합계를 계산한 후 최대값과 최소값을 뺀 합계와 평균을 계산한다,

//

// int sum = 0;

// for (int i = 0; i < data.length; i++) {

// sum += data[i];

// }

// sum -= max + min;

// double avg = (double) sum / (data.length - 2);

// System.out.printf("최소값과 최대값을 제외한 합계: %d\n최소값과 최대값을 제외한 평균: %.3f\n", sum, avg);

 

 

 

// 오름차순 정렬하면 0번째 인덱스의 값이 최소값, n-1번째 인덱스의 값이 최대값이 된다.

// 내림차순 정렬하면 0번째 인덱스의 값이 최대값, n-1번째 인덱스의 값이 최소값이 된다.

 

for (int i = 0; i < data.length - 1; i++) {

for (int j = 0; j < data.length - 1 - i; j++) {

if (data[j] > data[j + 1]) {

int temp = data[j];

data[j] = data[j + 1];

data[j + 1] = temp;

}

 

}

// Arrays.sort(data);

System.out.println(i + 1 + "회전 결과: " + Arrays.toString(data));

}

System.out.println("================================");

System.out.println("정렬 결과: " + Arrays.toString(data));

 

// 전체 데이터에서 최대값과 최소값을 제외한 합계와 평균을 계산한다.

int sum = 0;

for (int i = 1; i<data.length-1; i++) {

sum += data[i];

}

double avg = (double) sum / (data.length -2);

System.out.printf("최소값과 최대값을 제외한 합계: %d\n최소값과 최대값을 제외한 평균: %.3f\n", sum, avg);

 

// 분산(편차제곱의 평균)과 표준편차(루트분산)를 계산한다

double stn = 0.0;

for (int i = 1; i<data.length-1; i++) {

double temp = data[i] - avg; // 최대값과 최소값을 제외한 각 데이터 편차를 계산한다.

// stn += temp * temp; // 최대값과 최소값을 제외한 각 데이터 편차의 제곱의 합계를 계산한다.

stn += Math.pow(temp, 2); //제곱계산 메소드 활용

}

System.out.println(stn);

double var = stn / (data.length -2);

System.out.printf("최대값과 최소값을 제외한 분산: %7.5f\n" , var);

double std = Math.sqrt(var);

// double std = Math.sqrt(var,0.5);

System.out.printf("최대값과 최소값을 제외한 표준편차: %7.5f\n" , std);

}

}

'java&eclipse 코딩 알고리즘 > 20231205' 카테고리의 다른 글

WhileTest  (0) 2023.12.14
MenuTest2  (0) 2023.12.14
MenuTest  (0) 2023.12.14
EuclideanAlgorithm2  (0) 2023.12.14
EuclideanAlgorithm  (0) 2023.12.14