现在的位置: 首页 > 综合 > 正文

分而治之算法

2017年04月15日 ⁄ 综合 ⁄ 共 756字 ⁄ 字号 评论关闭
/*
 ============================================================================
 Name        : Lesson_0705_recursion_divide.c
 Author      : zizhu
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//分而治之算法,将大问题分解为小问题;只需要解决小问题即可
int main(void) {
	puts("利用分而治之算法寻找最大数:"); /* prints Hello UPC World */
	int arr[20] ;
	srand(time(NULL));
	for(int i = 0;i<20;i++){
		arr[i] = rand() % 100;//初始化
		printf("%d,", arr[i]);
	}
	int Max(int arr[], int count);
	int max = Max(arr, 20);
	printf("\n最大值为:%d", max);
	return EXIT_SUCCESS;
}

int Max(int arr[], int count){
	if(count == 1){
		return arr[0];
	}else{
		int max = Max(arr, count - 1);//必须只能减一,变小一点点
		if(arr[count - 1] > max){
			return arr[count - 1];
		}else{
			return max;
		}
	}
}

抱歉!评论已关闭.