수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

분할 알고리즘 최대값 최소값 구하기에서 이해가안돼서요 도와주세요!

바닐라

2023.04.01


질문 제목 : 분할 알고리즘 최대값 최소값 구하기에서 이해가안돼서요 도와주세요!알고리즘 마지막부분이 이해가안돼요...질문 내용 :
우선 알고리즘은요

1:void maxmin(int i, int j, type& max, type& min)
2:// a[1:n]은 전역으로 선언된 배열임
3:// 패라미터 i와 j는 정수, 1 = i = j = n
4:{
5:if (i == j) max = min = a[i]; // n = 1인 경우, small(p)
6:else if (i == j-1) { // n = 2인 경우, small(p)
7:if (a[i] a[j]) { max = a[j]; min = a[i]; }
8:else { max = a[i]; min = a[j]; }
9: }
10: else { // if p is not small
11:// divide p into subproblems
12:// find where to split the set
13:int mid = (i + j) / 2;
14:type max1, min1;
15:// solve the subproblems.
16:maxmin(i, mid, max, min);
17:maxmin(mid + 1, j, max1, min1);
18:// combine the solutions.
19: if (max max1) max = max1;
20: if (min min1) min = min1;
21:}
22:}
이건데요...
17행 까지는 전부 이해가가요 모든 배열을 나눠서 2개 이하로 나눠지지 않을때까지 나눠서 재귀함수를 쓰는거요...
근대 그 밑에 19~20행이요...이론상으로는 나눠진 배열들의 최대값 최소값을 마지막에 반환 반환 해서 결국 최종
최대 최소값을 구한다라고 써져있긴한대요... 전 이해가 안가는게 이미 재귀함수를 쓰는순간 다시
함수가 시작돼니깐...결국 19~20행은 명령을 실행시키지 못하는게 정상이아닌가요? 뭐 계속 재귀함수를 계속 반복 하다가
결국 배열의 길이가 2개 이하까지 쪼개지고 결국 if 문과 if else 문에서 max, min가 결정돼도록... 여하튼이렇게한다한들
최종 max, min값이 결정돼진 않지만...아무튼 저 쑹튼 저 알고리즘에서 19~20행의 역할이 잘 이해가 가질 않습니다...ㅠ

그리구...재귀함수가 실행댈때요 max,min, max1, min1은 정해지지도못했는데 저기엔 어떤값이 들어가서 재귀함수가
실행되는지도 의문이구요 ㅠ....
14행의 명령을 제가 이해를못해서이지 않을까하기도한데...아무튼 친절히 알려주실분 저좀 도와주세요!

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2695091 txt 파일 입출력 후 2차 배열에 저장하기입니다. (3) 헛장사 2025-05-17
2695063 수도요금 프로그램좀 짜주세요. 시내 2025-05-17
2695033 답변좀요ㅠㅠ (1) 비사벌 2025-05-16
2695010 C++의 STL은 왜 굳이 템플릿화 시켜서 라이브러리를 만드나요? (초보수준의 질문..) (2) 엘보어 2025-05-16
2694958 로직이 변한다는 것에 대해서 궁금합니다. 튼동 2025-05-16
2694929 열혈강의 25-2 두번째 문제 질문 지우개 2025-05-15
2694900 dequeue 에서 리턴값 프린트 방법알려주세요 오늘 12시까지 대화방에 있습니다 도와주세요 미투리 2025-05-15
2694854 절대값을 구할때 (2) 그녀는귀여웠다 2025-05-15
2694827 이제 어떻게 공부해야할지 모르겠네요 새얀 2025-05-14
2694778 순열 계산요. 맛조이 2025-05-14
2694754 ShowWindow 함수를 이용하려 하는데 질문있습니다. (2) 파도 2025-05-14
2694731 리눅스 커널의 시작점 질문 미르 2025-05-13
2694702 이거 뭐가문제인가요 코드수정좀 (3) 맑은 2025-05-13
2694675 C언어 후위표기를 중위표기로 앨런 2025-05-13
2694646 안녕하세요 파일 합치기 함수! (1) 연블루 2025-05-13
2694618 잘몰라서 설명부탁드립니다. scanf 관련 (3) 파라 2025-05-12
2694590 이 코드가 뭐하는 코드일까요? #2 빵순 2025-05-12
2694559 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) 늘솔길 2025-05-12
2694532 네트워크에 관하여... (4) 황소자리 2025-05-12
2694503 프로그램 연산 후 바로 종료되는 현상 (6) Judicious 2025-05-11
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com