본문 바로가기

알고리즘

[알고리즘] 최소 값 찾기 알고리즘

논리

  • 0번째 인덱스가 가장 작다고 가정한다.
  • 그 다음 인덱스부터 가정한 값과 비교하면서 확인한다.
  • 다음 인덱스 값이 가정한 값 보다 작다면 가정한 값을 치환한다.
  • 계속 비교해 나간다.

예제

  • 배열에 [10, 2, 5, -3, 1]가 들어있다.
  • 10을 가장 작다고 가정한다.
  • 10를 1번 인덱스부터 비교를 한다.
  • 10보다 작은 값이 없다면 10이 최소 값이 된다.
  • 10보다 작은 값이 있다면 그 값을 최소 값으로 치환한다.
  • 비교를 다시 시작한다.

예제 코드

// 배열에 데이터 할당
int datas[] = {10, 2, 5, -3, 1};

// 0번 인덱스가 최소 값이라고 가정
int minIndex = 0;

// 1번부터 마지막 인덱스까지 반복
for(int i=1; i<datas.length;i++) 
{

    //i번 값이 가정 값 보다 작다면
       if(datas[i] < datas[minIndex]) 
       {

        //i번 인덱스 값을 저장
           minIndex = i;

       }

}

//출력
System.out.print(minIndex + "번 index에 있는 " + datas[minIndex] + "입니다.")

디버깅표

i i<datas.length datas[i]<datas[minIndex] maxIndex
1 T T 1
2 T F
3 T T -3
4 T F
5 F

'알고리즘' 카테고리의 다른 글

[알고리즘] 선택정렬  (0) 2023.11.29
[알고리즘] 버블정렬  (0) 2023.11.28
[알고리즘] 삽입정렬  (0) 2023.11.28
[알고리즘] 탐색 알고리즘  (0) 2023.11.27
[알고리즘] 최대 값 찾기 알고리즘  (0) 2023.11.27