递归实现冒泡排序
void bubble(int arr[], int L, int R)
{
if(L < R)
{
for(int i = L; i <= R-1;i++)
{
if(arr[i] > arr[i+1])
{
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
bubble(arr, L, R-1);
}
}
辗转相除法求最大公约数
int gcd(int a, int b)
{
int r = a % b;
if(r == 0) return b;
else{
return gcd(b ,r);
}
}
通项为n的等差数列求和
int sum(int n)
{
if(n == 1) return 1;
else
return (sum(n-1) + n);
}
求数组的前n项和(数组前n-1项的和加第n项)
int sum(int arr[], int n)
{
if(n == 0) return arr[0];
else
return (sum(arr, n-1) + arr[n]);
}
求数组前n项的最大值
(前n-1项的最大值与第n项作比较)
int max(arr, n)
{
if(n == 0) return arr[0];
else{
if(max(arr, n-1) > arr[n])
{
return max(arr, n-1);
}
else return arr[n];
}
}