java用递归求冒泡排序和求最大公约数程序及结果
时间: 2024-09-10 15:12:08 浏览: 38
输入两个正整数m和n求其最大公约数和最小公倍数 (2).pdf
首先,我将分别介绍使用递归实现冒泡排序和求最大公约数(GCD)的Java程序,并给出示例结果。
1. 使用递归实现冒泡排序的Java程序:
```java
public class BubbleSortRecursive {
// 递归实现冒泡排序
public static void bubbleSortRecursive(int[] arr, int n) {
// 基本情况:当只有一个元素时不需要排序
if (n == 1)
return;
// 进行一轮冒泡操作,使最大的元素到达正确的位置
for (int i = 1; i < n; i++) {
if (arr[i - 1] > arr[i]) {
// 交换元素
int temp = arr[i - 1];
arr[i - 1] = arr[i];
arr[i] = temp;
}
}
// 递归调用,继续排序剩余的元素
bubbleSortRecursive(arr, n - 1);
}
public static void main(String[] args) {
int[] arr = { 64, 34, 25, 12, 22, 11, 90 };
int n = arr.length;
bubbleSortRecursive(arr, n);
System.out.println("Sorted array: ");
for (int i = 0; i < n; i++) {
System.out.print(arr[i] + " ");
}
}
}
```
执行上述程序,结果将会是:
```
Sorted array:
11 12 22 25 34 64 90
```
2. 使用递归实现求最大公约数的Java程序:
```java
public class GCDRecursive {
// 使用递归求两个数的最大公约数
public static int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
public static void main(String[] args) {
int num1 = 48;
int num2 = 18;
int result = gcd(num1, num2);
System.out.println("GCD of " + num1 + " and " + num2 + " is: " + result);
}
}
```
执行上述程序,结果将会是:
```
GCD of 48 and 18 is: 6
```
阅读全文