利用二分法和递归求数组中的最小值
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 10
typedef int ElemType;
ElemType Min(int a[], int i, int j ) {
int mid;
ElemType min, min1, min2;
if (i == j) {
min = a[i];
} else {
mid = (i + j) / 2;
min1 = Min(a, i, mid);
min2 = Min(a, mid + 1, j);
min = min1 < min2 ? min1 : min2;
}
return min;
}
int main(void){
int a[M];
int min;
srand((unsigned)time(NULL));
for (int i = 0; i < M;i++){
a[i] = rand() % 101;
printf("%d ", a[i]);
}
printf("\n");
min = Min(a, 0, M - 1);
printf("The min number is: %d", min);
return 0;
}
网友评论