百知-预热视频-04方法&数组&排序算法-20210112

1.方法

函数又叫方法。

方法的重载

方法的重载是指方法名称相同,参数的类型或个数不同,调用的时候将会按照传递的参数类型和个数完成不同方法体的执行。

package text001;
/**
 * Created by Administrator on 2021/1/16.。方法重载
 */
public class TestDemo3 {
    public static void main(String[] args) {
        System.out.println("两个整数"+add(10,20));
        System.out.println("三个整数"+add(10,20,30));
        System.out.println("两个浮点型参数"+add(10.2,10.3));
    }

    public static int add(int x,int y){
        return x+y;
    }
    public static int add(int x,int y,int z){
        return x + y + z;
    }
    public static double add(double x,double y){
        return x + y;
    }
}

方法的递归

递归调用是一种特殊的调用方式,指的是方法自己调用自己的形式。

package text001;

/**
 * Created by Administrator on 2021/1/16.  实现从1到100求和。
 */
public class TestDemo4 {
    public static void main(String[] args){
        System.out.println(sum(100));
    }
    public static int sum(int num){
        if(num == 1){
            return 1;
        }
        return num + sum(num - 1);
    }
}

2. 数组

数组属于引用型数据,所以在数组的操作过程中,会设计到内存分配的问题。
数组定义结构是动态初始化的方式,即数组首先会开辟内存空间,但是数组中的内容都是对应的数据类型的默认值,如果声明的是int型数组,则数组里面的内容全部是0,不是其他垃圾值

① 数组的引用传递

package text001;

/**
 * Created by Administrator on 2021/1/23.
 */
public class TestDemo5 {
    public static void main(String [] args){

        int data[] = new int[3];
        data[0] = 10;
        data[1] = 20;
        data[2] = 30;
        int temp[] = data;
        temp[0] = 40;

        for(int x = 0;x < temp.length;x++){
            System.out.println(data[x]+"、");
        }
    }
}

② 数组的缺点

虽然数组支持顺序的数据访问操作,但是数组有一个最大的缺点——长度不能改变,所以在开发中不直接应用数组,而是使用数组的概念(利用类集框架来解决)。

③ 数组操作方法

System.arraycopy():数组复制
java.util.Arrays.sort():数组排序
package text001;

/**
 * Created by Administrator on 2021/1/23.数组排序方法
 */
public class TestDemo5 {
    public static void main(String[] args){
    int data[] = new int[]{3,6,1,2,8,0};//数组静态初始化
    java.util.Arrays.sort(data);//数组排序
    print(data);
    }
    public static void print(int temp[]){
        for(int x = 0;x < temp.length;x++){
            System.out.println(temp[x]+"、");
        }
    }
}

④ 对象数组

对象数组表示一个引用类型里面嵌套其他的引用类型。之前使用的数组都是基本数据类型的数组,但是所有的引用数据类型也可以定义数组,这样的数组称为对象数组,动态初始化后数组中的每一个元素都是null。
对象数组的最大优点是:将多个对象统一进行管理,并且除了数据类型改变外,与之前的数组没有任何区别,而且数组本身就属于引用数据类型,因此对象数组就是在一个引用数据类型中嵌入其他引用数据类型。

package text001;

/**
 * Created by Administrator on 2021/1/23.
 */
class Book{
    private String title;
    private double price;
    public Book(String t,double p){
        title = t;
        price = p;
    }
    public String getlnfo(){
        return"书名:"+title+",价格:"+price;
    }
}
public class TestDemo5 {
  public static void main(String[] args){
      Book books[] = new Book[3];
      books[0] = new Book("java",79.8);//动态初始化开辟数组
      books[1] = new Book("JSP",69.8);
      books[2] = new Book("android",89.8);
      for(int x = 0;x < books.length;x++){
          System.out.println(books[x].getlnfo());
      }

  }
}

3. 排序算法

① 冒泡排序

比较一轮确定一个最大数。

package text001;

/**
 * Created by Administrator on 2021/1/25.
 */
public class TestDemo6 {
    public static void main(String[] args){
        int[] a = {8,5,4,3,7,2};

        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 t = a[j];
                    a[j] = a[j + 1];
                    a[j+1] = t;
                }
            }
        }
        for(int x = 0;x < a.length;x++) {
            System.out.println(a[x]);
        }
    }
}

② 选择排序法

一个元素 和 其他所有元素进行比较。
比较一轮确定一个最小数。
图1
图2

package text001;

/**
 * Created by Administrator on 2021/1/25.
 */
public class TestDemo6 {
    public static void main(String[] args){
        int[] a = {8,5,4,3,7,2};

        for(int i = 0;i < a.length-1;i++){
            for(int j = i + 1;j < a.length;j++){
                if(a[i] > a[j]){
                    int t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                }
            }
        }
        for(int x = 0;x < a.length;x++) {
            System.out.println(a[x]);
        }
    }
}

③ JDK排序

是较快的排序算法。

package text001;

/**
 * Created by Administrator on 2021/1/25.
 */
public class TestDemo6 {
   public static void main(String[] args){
       int[] a = {8,5,4,3,7,2};

       java.util.Arrays.sort(a);

       for(int x = 0;x < a.length;x++){
           System.out.println(a[x]+"\t");
       }
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值