public class Test {
public static void main(String[] args) {
int[] nums = {8, 5, 7, 90};
//选择排序,遍历每个数字,与他后面的所有数字进行比较,每一轮选出最小的数字到前面
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] > nums[j]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
//冒泡排序,两两相比,将越大的数字越往后放
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - 1 - i; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
for (int i : nums) {
System.out.print(i + " ");
}
}
}
递归
/**
* 嵌套for循环 和 用递归实现 的比较:
* 栈 主要是用来存放栈帧的,每执行一个方法就会出现压栈操作,所以采用递归的时候产生的栈帧比较多,递归就会影响到内存,非常消耗内存,
* 而使用for循环就执行了一个方法,压入栈帧一次,只存在一个栈帧,所以比较节省内存。
*
* @param i
*/
public static void mul(int i) {
if (i > 1) {
mul(i - 1);
}
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + j * i + " ");
}
System.out.println();
}
public static void main(String[] args) {
mul(9);
System.out.println("====================传统方式99乘法表===================");
//99乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + " ");
}
System.out.println();
}
}