Java基础(7):递归思想和冒泡排序

递归思想:

简单来说,就是‘自己’调用‘自己’。但递归的思想,是把一个复杂的问题,化解为多个相似的小问题进行处理。合理运用递归思想,可以很好的帮助程序员同过少量简单的代码把一个复杂的问题解决。运用递归思想时候要注意以下几点:

  1. 定义递归边界:即当一个方法执行到某一程度时候,便终止方法,返回数据类型。
  2. 清楚递归过程:递归过程分为了从开始递归到递归边界,以及从递归边界返回到初始的过程。合理分析这一过程才不会让递归的结果超出程序员的预设。
  3. **当处理一个复杂且大的数据时候 😗*递归往往容易造成时间上的浪费(效率不高),因此如果不是万不得已尽可能采取其他方式实现递归后的结果。
    public static void main(String[] args) {
        print(1);
    }

    /**
     * 利用递归思想打印图形
     * @param number:打印的行数
     * @return
     */
    public static int print(int number) {
        if (number == 5) {
            return number;
        }
        for (int i = 0; i < number; i++) {
            System.out.print("*" + "\t");
        }
        System.out.println();
        return print(number + 1);
    }

结果:
在这里插入图片描述

冒泡排序:

一个很著名的算法之一,冒泡排序的思想是:对一个无序的数组进行有序的排列,数组的元素中两两相邻的进行比较,根据情况进行交换位置。每一次的排序都实现最大/最小的元素的确定,并且每一次排序次数逐渐减少。

代码逻辑的实现思路:两层循环,外层循环控制元素便利的次数,内层循环控制元素的比较实现。

public static void main(String[] args) {
	int[] arr = new int[]{1,5,6,3,4,8};
	/**
	* 冒泡排序算法:
	* 
	*/
	for (int i = 0; i < arr.length - 1; i++) {
		//flag用于对冒泡排序的优化
		boolean flag = false;
		for (int j = 0; j < arr.length - 1 - i) {
			//元素相邻两两比较
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j + 1];
				arr[j + 1] = arr[j];
				arr[j] = temp;
				flag = true;
			}
		}
		if (flag == flase) {
			System.out.println("排序完毕");
			break;
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值