재 귀 함수 로 문자열 의 역 치 문 제 를 풀다.

1.재 귀 함수 개술
        프로 세 스 를 위 한 프로 그래 밍 언어 를 사용 하여 프로그램 을 작성 하 는 과정 에서 구조 화 된 프로 그래 밍 사상,모듈 화 된 프로 그래 밍 방법 에 따라 프로그램의 작성 과 코드 를 구성 합 니 다.우리 가 잘 아 는 C 언어 는 바로 이러한 프로 그래 밍 언어 로 함수 단위 로 프로그램의 모듈 화 조직 을 한다.C 소스 프로그램 은 하나의 주 함수 와 몇 개의 비 주 함수 로 구성 된다.컴퓨터 가 C 프로그램 을 실행 할 때 순서대로 주 함수 main()부터 실행 합 니 다.다른 함 수 를 호출 하 는 상황 이 발생 하면 주 함수 가 실행 을 중단 하고 해당 하 는 함 수 를 실행 합 니 다.이 함수 가 실 행 된 후에 주 함수 로 돌아 가 주 함수 가 계속 실 행 됩 니 다.이것 은 함수 호출 이 라 고 합 니 다.주 함수 가 다른 함 수 를 호출 할 수 있 을 뿐만 아니 라 각 함수 간 에 도 서로 호출 할 수 있 습 니 다.만약 에 한 함수 가 자신 을 호출 하면 우 리 는 함수 의 재 귀 호출 이 라 고 부 릅 니 다.어떤 특수 한 문제 의 해답 에서 귀속 함 수 를 사용 하면 때때로 매우 높 은 효율 을 얻 을 수 있다.더 좋 은 읽 기 체험,방문 프로그래머 여행 중)        재 귀(Recursion)는 컴퓨터 과학 에서 반복 적 으로 문 제 를 같은 하위 문제 로 분해 함으로써 문 제 를 해결 하 는 방법 을 말 하 는데 그 핵심 사상 은 분할 전략 이다.귀속 알고리즘 은 다음 과 같은 세 가지 문 제 를 해결 하기에 적합 하 다.
4.567917.데이터 의 정 의 는 재 귀 에 따라 정의 된다.예 를 들 어 Fibonacci 함수..
4.567917.문제 해법 은 재 귀 알고리즘 에 따라 이 루어 진다.하노이 문제 처럼..
4.567917.데이터 의 구조 형식 은 재 귀 에 따라 정의 된다.이 진 트 리,광의 표 등
2.문자열 역 설정 예제 풀이
2.1 제목 설명
        문자열 을 역 설정 하 는 함 수 를 만 듭 니 다(예 를 들 어 문자열"abcde"를"edcba"로 바 꿉 니 다).
2.2 분석 구 해
        문자열 을 역 설정 하면 첫 번 째 문자열 과 마지막 문자열 을 교환 하고 나머지 문자열 을 역 설정 할 수 있 습 니 다.나머지 문자열 의 길 이 는 원래 의 길이 에서 2 를 줄 이 고 규 모 를 축소 하여 나머지 문자열 의 역 설정 방법 은 첫 번 째 와 마찬가지 로 문자열 의 길 이 는≤1 이면 재 귀 조건 이 끝 납 니 다.프로그램 은 다음 과 같 습 니 다:
#include
//start,end            
void convert_str(char *str, int start, int end){
	char ch;
	if((end - start) < 1){  // <1            ,     ,      
		return ;  
	}else{
	
		ch = str[start];
		str[start] = str[end];
		str[end] = ch;
        convert_str(str,start+1,end-1); //       ,           
	}
}
int main(){

		char x[] = "abcdefgh";
		convert_str(x,0,7);

		printf("       : %s 
"
, x); return 0; }

3.총화
        1)재 귀적 정 수 는 규모 가 크 고 해결 하기 어 려 운 문 제 를 규모 가 작고 해결 하기 쉬 운 똑 같은 문제 로 바 꾸 는 것 이다.규모 가 작은 문 제 는 규모 가 더 작은 문제 로 바 꾸 고 어느 정도 작 으 면 그 문 제 를 직접 해결 하여 원래 의 문 제 를 해결 할 수 있다.그 밖 에 재 귀적 인 종료 조건,즉 재 귀적 인 수출 에 도 주의해 야 한다.수출 조건 설정 이 잘못 되면 프로그램 이 종료 되 지 않 아 프로그램의 붕 괴 를 초래 할 수 있다.        2)재 귀적 실현 은 스 택 이라는 데이터 구조 덕분에 함수 의 매번 호출 은 스 택 을 사용 하여 함수 의 매개 변수,부분 변수,주소 등 데 이 터 를 저장 하기 때문에 재 귀 를 사용 할 때 재 귀적 깊이 문 제 를 고려 해 야 한다.너무 깊 으 면 스 택 이 넘 쳐 문제 해결 에 실패 하기 쉽다.

좋은 웹페이지 즐겨찾기