JavaSE-day07

算法

概念

        使用代码实现生活中的数学公式

优点

        提高代码的执行效率

如何判断算法是否优秀?

        时间复杂度

                代码执行的时长,执行时间越短越好

        空间复杂度

                代码执行时占据的内存,占据的内存越少越好

常用算法

两数交换

        int a = 10;

        int b = 20;

        int temp =a;

        a = b;

        b = temp;

寻找最值

        作用:寻找数组中的最大值或者最小值

        寻找最大值

                思路:

                        1、获取一个数组

                        2、假设数组中第一个数据为最大值

                        3、循环遍历数组

                        4、判断假设的最大值与遍历提取的数相比较

                        5、如果假设的最大值小于提取的数,将提取的数赋值给假设最大值

                        6、当循环遍历结束后假设的最大值就是真的最大值

寻找最值下标

        作用:寻找数组中的最大值或者最小值的下标

        寻找最大值下标

                思路:

                        1、获取一个数组

                        2、假设数组中第一个数据为最大值下标所对应的最大值,此时下标为0

                        3、循环遍历数组

                        4、判断假设的最大值与遍历提取的数相比较

                        5、如果假设的最大值小于提取的数,将提取的数下标赋值给假设最大值的下标

                        6、当循环遍历结束后假设的最大值下标就是真的最大值下标

排序

        作用:将数组中的数据按照定义的规则进行排列

                从小到大或从大到小

 冒泡排序

         核心思想:相邻比较

 选择排序

         核心思想:寻找最值下标与目标交换

         注意:已经找到过的最值,不参与下次比较

 快速排序

        使用:

                Arrays.sort(数组名);

二维数组

         概念:将一维数组作为数据,放到一数组中

声明

        语法:数据类型[ ][ ] 数组名

创建

        静态

                数据类型[][] 数组名 = {{值1,值2,...},{值3,值4,值5,..},{值6,值7,...},...};

                注意:必须声明与创建同时执行

        动态

                数组名 = new 数据类型[二维数组中一维数组的个数][一维数组中数据的个数(可有可无)];                 数组名 = new 数据类型[ ][ ]  {{值1,值2,...},{值3,值4,值5,..},{值6,值7,...},...};

操作

        取值

                语法:数组名[一维数组在二维数组中的下标][数据在一维数组中的下标];

        改值

                语法:数组名[一维数组在二维数组中的下标][数据在一维数组中的下标] = 值;

        获取长度

                语法:数组名.length 注意:二维数组获取的长度不是所有数据的个数,而是二维数组中一维数组的个数

特殊操作

        二维数组的遍历

杨辉三角

        1 0 0 0 0 0 0 0 0 0 0

        1 1 0 0 0 0 0 0 0 0 0

        1 2 1 0 0 0 0 0 0 0 0

        1 3 3 1 0 0 0 0 0 0 0

        1 4 6 4 1 0 0 0 0 0 0

        1 5 10 10 5 1 0 0 0 0

二分查找法

        作用:查找数组中的某个元素

        要求:数组必须是有序的

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值