Java知识点整理:第三章java中的循环,数组,栈,对象

9.java中的循环:

java中的循环

for循环:

一般在明确知道循环次数的情况下使用

        ①            ②         ③

for(初始化表达式;布尔表达式;递增表达式){

 

                 ④

//循环体

}

for(int i = 0 ; i<3;i++){

扫描二维码关注公众号,回复: 45081 查看本文章

System.out.println(i);

}

10.Java数组的排序

 [8,2,3,7,1] --->[1,2,3,7,8]

冒泡排序

选择排序

插入排序

........

 

Arrays.sort();

 

 

冒泡排序

[8,2,3,7,1]

每次排序将挑出本次排序最大的数放到后面

比较相邻的两个元素,大的往后,小的往前.

 

第一次排序:

   第一次比较   8 <-> 2 [2,8,3,7,1]

   第二次比较   8 <-> 3 [2,3,8,7,1]

   第三次比较   8 <-> 7 [2,3,7,8,1]

   第四次比较   8 <-> 1 [2,3,7,1,8]

第二次排序:

  第一次比较    2 -> 3  [2,3,7,1,8]

  第二次比较    3 -> 7  [2,3,7,1,8]

  第三次比较    7 <->1  [2,3,1,7,8]

第三次排序:

  第一次比较    2 -> 3  [2,3,1,7,8]

  第二次比较    3 <->1  [2,1,3,7,8]

第四次排序 

  第一次比较    2 <->1  [1,2,3,7,8]

 

数组中总共有5个数:

需要几次排序,每次排序比较几次?

 

最多需要arr.length-1次排序

第一次排序比较4

第二次排序比较3

第三次排序比较2

第四次排序比较1

 

冒泡排序的代码:

外层for循环控制排序的次数

内层for循环控制每次排序比较的次数

for(int i=0;i<arr.length-1;i++){

for(int j =0 ;j<arr.length-i-1;j++){

//两两比较,交换位置

if(arr[j] > arr[j+1]){

int temp = arr[j+1];

arr[j+1] = arr[j];

arr[j] = temp;

}

}

}

选择排序

将数组中的每个元素与第一个元素比较,

如果这个元素小于第一个元素,交换位置

 

每次排序找出一个最小的往前面放.

 

[8,2,3,7,1]

for(int i =0 ;i <arr.length-1;i++){

for(int j =i+1;j<arr.length;j++){

if(arr[i]>arr[j]){

  int temp = arr[i];

  arr[i] = arr[j];

  arr[j] = temp ;

}

 

}

}

 

 

 

11方法的递归调用(了解为主,掌握为辅)

  f(n){

f(n-1);

  }

 

y =f(n)=1+3+5+7+9+....+n  == f(n-2)+n ==f(n-4)+n-2+n

f(n) =1~n

f(n-2) =1~n-2

f(n-4) =1~n-4  

 

1 3 5 7 9.... n-4  n-2  n

 

计算 9+7+5+3+1

n = 9

f(n){

   1 +3+5+7+n

   f(n-2)+n;

}

f(n-2){

   f(n-4)+n-2;

}

 

f(1)  == 1

 

publicstatic int f(int n){

    if(n ==1){

return 1 ;

    }

    return f(n-2)+n;

}

f(9) =f(7)+9

f(7) =f(5)+7

f(5) =f(3)+5

f(3) =f(1)+3

f(1) =1

12.栈内存

栈是计算机中的一种数据存储方式,java进程启动时在内存中开辟的存储空间. 

栈内存遵循LIFO(后进先出).java中的所有局部变量在栈中分配空间

局部变量:

    写到方法中的变量

    方法的形参

当离开局部变量的作用域,变量被回收,从栈中删除.

           java中的方法调用就是使用栈实现的.

猜你喜欢

转载自blog.csdn.net/qq_41094885/article/details/80040182
今日推荐