根据我前面写的递归思想(“学习递归算法-优快云博客”),对常用的冒泡排序、插入排序、二分法查找分别实现代码如下:
package com.tfq.arithmetic.recursion;
/**
* @date: 2024/05/25/22:50
* @description: 递归冒泡排序
*/
public class BubbleSort {
/**
* 递归冒泡排序
*
* @param a 待排序数组
* @param j 代表未排序区域右边界
* @return
*/
public static void recusionBubble(int[] a, int j) {
if(j == 0) {
return;
}
int x = 0;//左侧是无序的,右侧是有序的。
for(int i = 0; i < j; i++) {
int temp = 0;
if(a[i] > a[i + 1]) {
x = i;
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
//递归从0到x结束
recusionBubble(a, x);
}
}
下面是递归插入排序
package com.tfq.arithmetic.recursion;
/**
* @date: 2024/05/27/8:30
* @description: 递归插入排序
*/
publi