Near Algoritm - 근사값 알고리즘
Programming/Java Algorithm 기초

Near Algoritm - 근사값 알고리즘

728x90

Near Algoritm - 근사값 알고리즘

  • 근삿값 알고리즘: 차이값의 절대값의 최소값 = 근사값
  • 차이값 = (데이터 - 대상값(target))
package nearAlgoritm; 
//근삿값 알고리즘: 차이값의 절대값의 최소값.

//[?] 원본 데이터중에서 대상 데이터와 가장 가까운 값을 구한다

public class NearAlgoritm {
	
	//[0] 절댓값 구하기 로컬 함수
	// number가 음수면(참) 양수로 변환하고, 양수면(거짓) 양수 그대로 나오는 메서드
	public static int Abs(int number) {
		return (number < 0 ) ? -number : number; 
	}
	
	public static void main(String[] args) {
		//[1] Initialize
		int min = Integer.MAX_VALUE; //차잇값의 절댓값의 최솟값이 담기는 그릇
		
		//[2] input
		int[] numbers = {10, 20, 30, 27, 17 };
		int target = 25; //target과 가까운 값이 구해지는 것.
		int near = 0; // 가까운 값(근사값)
		
		//[3] process
		for(int i = 0; i < numbers.length; i++) {
			int abs = Abs(numbers[i] - target); // 차잇값의 절대값이 담기는 변수
			if(abs < min) {
				min = abs; // 여기까지는 최소값 알고리즘
				near = numbers[i]; // NEAR 알고리즘 : 차잇값의 절대값의 최솟값인 값
			}
		}
		
		//[4] output
		System.out.println(target + "과 가장 가까운 값 : "+ near+ " \n 차이는 : "+ min);
	}
}

 

300x250