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)
不能进行发散递归
递归算法一定要有结束条件
例子
例子-斐波那契数列
最后更新于