冒泡排序
核心思想:
依次比较相邻的两个元素
public class TestBubbleSortDemo {
public static void main(String[] args) {
//1.数组
int[] nums = {4, 5, 1, 7, 6, 3, 2};
//2.冒泡
//外层循环:控制趟数
for (int i = 0; i < nums.length - 1; i++) {
//内层循环:控制次数
for (int j = 0; j < nums.length - 1 - i; j++) {
//循环体: 比较 函数[j] 和 数组[j+1]
if (nums[j] > nums[j + 1]) {
//交换
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
//3.打印数组
for (int num : nums) {
System.out.println(num);
}
}
}
选择排序
核心思想:
依次选中某个元素,拿后面的元素和它比较
public class TestSelectSortDemo {
public static void main(String[] args) {
//1.数组
int[] nums = {4, 5, 1, 7, 6, 3, 2};
//2.使用选择排序
//外层循环:控制选中的元素
for (int i = 0; i < nums.length - 1; i++) {
//nums[i]
//内层循环:取出nums[i]后面的元素和nums[i]比较
for (int j = i + 1; j < nums.length; j++) {
//比较 nums[i] nums[j]
if (nums[i] > nums[j]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
//3.打印数组
for (int num : nums) {
System.out.println(num);
}
}
}
递归
递归的一般步骤:
- 和循环没有区别,定义一个方法
- 找规律,调用方法自己
- 找出口,让递归有停止条件
例:求1+2+3…n的和
public class TestRecursionDemo01 {
public static void main(String[] args) {
//调用
System.out.println("和为"+getSum(100));
}
public static int getSum(int n){
if (n==1){
return 1;
}
return getSum(n-1)+n;
}
}
求乘机,同上
public class TestRecursionDemo02 {
public static void main(String[] args) {
//调用
int ji=getJi(10);
System.out.println(ji);
}
public static int getJi(int n){
if (n==1){
return 1;
}
return getJi(n-1)*n;
}
}