9.27-排序与递归调用

数组顺序/倒序排序

package day9_27;

import java.util.Arrays;

public class SortDemo {
	public static void main(String[] args) {
		int[] ary= {1,2,5,4,8,0};
		System.out.println("排序前"+Arrays.toString(ary));
		Arrays.sort(ary);
		System.out.println("排序后"+Arrays.toString(ary));
		bubbleSort(ary);
		selectSorf(ary);
	}
	//冒泡排序
	public static void bubbleSort(int[] a) {
		//外层循环表示循环轮数
		for(int i=0;i<a.length-1;i++) {
			// 内层循环实现相邻元素的的比较换位
			for(int j=0;j<a.length-1-i;j++) {
				if(a[j]>a[j+1]) {
					int temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		System.out.println(Arrays.toString(a));
	}
	public static void selectSorf(int[] a) {
		//选择排序
		//外层循环表示轮数
		for(int i=0;i<a.length-1;i++) {
			//内层实现两个元素比较换位
		for(int j=i+1;j<a.length-1;j++) {
			if(a[i]<a[j]) {
				int temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
		System.out.println(Arrays.toString(a));
	}

}

递归调用

在方法中直接或间接的调用方法自身

好处

可以简洁的处理问题,只要搞清楚第一层,其他都一样

缺点

  • 不能进行过深递归,递归过深会导致栈内存溢出错误(StackOverflowError)

  • 不能进行发散递归

  • 递归算法一定要有结束条件

例子

例子-斐波那契数列

最后更新于