一。冒泡排序法
public static void main(String[] args) {
//创建一个模拟数组
int arr[] = {10,2,6,4,13,5};
//中间变量
int temp = 0;
for (int j = 0; j < arr.length - 1; j++) {
for (int i = 0; i < arr.length-1 -j; i++) {
if (arr[i] > arr[i+1]){
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//打印遍历一遍后的数组
System.out.println(Arrays.toString(arr));
}
}
以上代码遍历一遍过程,可直接运行。修改数组位置自己尝试一下。
原:[10,2,6,4,13,5]->[2,10,6,4,13,5]->[2,6,10,4,13,5]->[2,6,4,10,13,5]->[2,6,4,10,13,5]->[2,6,4,10,5,13]这是遍历一遍后的结果,冒泡排序就是拿n与n+1的那个比决定是否“冒泡”,再根据代码的逻辑(从大到小,从小到大),每一次遍历确定一个位置(最大或最小)。
二。斐波那契数列
斐波那契数列:前两数之和等于第三个数。
列:0,1,1,2,3,5,8,13·······
public static void main(String[] args) {
//随便填写n即可得到前n项之和
System.out.println(sum(6));
//随便填写n即可得到n项的值
System.out.println(nZhi(5));
}
//逻辑
private static int getRabbit(int i) {
if (i==0){
return 0;
}
if (i == 2 | i == 3) {
return 1;
} else {
return getRabbit(i-1)+getRabbit(i-2);
}
}
//经过算法得知前n项的和等于n项加n+1项减一
public static int sum(int n){
int rabbit1 = getRabbit(n);
int rabbit2 = getRabbit(n+1);
return rabbit1+rabbit2-1;
}
//n项的值
public static int nZhi(int i){
int rabbit = getRabbit(i);
return rabbit;
}