
Java
文章平均质量分 85
yuuyin
这个作者很懒,什么都没留下…
展开
-
【排序篇】选择排序
选择排序 直接选择排序-原理 每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完 。 根据排序名字就可以得知,直接选择排序,就是直接选择最大或最小的元素放在第一个的位置,然后依次排序。 图示演示 图文解释 一组数据,定义两个变量i和j,让i从第一个位置开始,j = i+1;判断i下标和j下标两个元素的大小,j不断往后走,如果遇到j下标的值小于i下标的值就交换两个位置的数据,一直到最后数据有序即可。 代码演示: public void select原创 2022-01-28 13:47:27 · 265 阅读 · 0 评论 -
【排序篇】希尔排序
希尔排序 原理 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时,所有记录在统一组内排好序。 希尔排序是对直接插入排序的优化。 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很 快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。 图示演示 图形解释:原创 2022-01-27 09:47:38 · 173 阅读 · 0 评论 -
【排序篇】插入排序
概念 排序 排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 平时的上下文中,如果提到排序,通常指的是排升序(非降序)。 通常意义上的排序,都是指的原地排序(in place sort)。 稳定性 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。 插入排序 插入排序:从第二个数据(为了方便看懂,这里用A代替)开始,和前面的元素(B)依次进行比较大小,如果是升序的话,数值大的放在后面,数值小的放在前面,直到B的值小于原创 2022-01-26 14:38:07 · 386 阅读 · 0 评论 -
异常处理。
文章目录异常的背景初识异常异常的好处异常的基本用法捕获异常Java异常体系自定义异常类 异常的背景 初识异常 除以0 System.out.println(10 / 0); // 执行结果 Exception in thread "main" java.lang.ArithmeticException: / by zero 数组下标越界 int[] arr = {1, 2, 3}; System.out.println(arr[100]); // 执行结果 Exception in thread "m原创 2021-12-07 14:42:28 · 263 阅读 · 0 评论 -
String的认识
文章目录创建String类字符串比较相等**字符串常量池**理解字符串的不可变字符、字节与字符串字符和字符串字节和字符串字符串常见操作字符串比较字符串查找字符串替换字符串拆分字符串截取其他操作方法StringBuffer和StringBuilder 创建String类 常见的构造String的方法: //方法一 String str="Hello"; //方法二 String str =new String ("Hello"); //方法三 char[] ch={'H','e'.'l','l','o'};原创 2021-12-05 16:02:16 · 815 阅读 · 0 评论 -
面向对象编程(二)
文章目录多态向上转型动态绑定方法重写理解多态向下转型super关键字在构造方法中调用重写的方法(一个坑)抽象类语法规则抽象类的作用接口语法规则实现多个接口接口使用实例接口间的继承Clonable接口和深拷贝 多态 向上转型 在刚才的例子里,我们写了如下代码 Bird bird = new Bird("圆圆"); 同时这个代码可以写成如下样子 Bird bird = new Bird("圆圆"); Animal bird2=bird; //或者如下 Animal bird2 = new Bird("圆圆")原创 2021-12-04 11:03:29 · 608 阅读 · 0 评论 -
数据结构:链表(单向无头非循环)
1 链表的概念及结构 链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。 链表的结构 链表就是一个个的节点组成的,一个节点分为两部分(val和next),val用来保存数据,叫做数据域,而next用来保存下一个节点的地址,节点与节点之间连接就是靠next。 实际中链表的结构非常多样,以下情况组合起来就有8种链表结构: 单向、双向 带头、不带头 循环、非循环 而我将描叙的是单向无头非循环链表和双向无头非循环链表,这篇文章先讲单向无头非循环链表.原创 2021-11-05 16:00:05 · 621 阅读 · 0 评论 -
数据结构:浅谈时间复杂度和空间复杂度
1.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被 称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额 外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的 迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复 杂度。 2.时间复杂度 2.1 时间复杂度的概念 时间复杂度的定义:在计算机科学中,算法的时间复原创 2021-11-02 17:33:25 · 446 阅读 · 0 评论 -
类 和 对象
啊原创 2021-10-30 13:44:35 · 375 阅读 · 0 评论 -
数组的定义和使用
1 数组基本用法 1.1 什么是数组 数组本质上就是让我们能 "批量" 创建相同类型的变量. 相同类型的变量组成的集合 例如 int a1=1,a2=2,a3=3; a1,a2,a3都是int类型的,我们就可以创建一个数组保存a1,a2,a3所储存的值 int[] array={1,2,3}; 注意事项: 在 Java 中, 数组中包含的变量必须是 相同类型 1.2 创建数组 数组的创建有两种方法: 静态初始化: 数据类型[] 数组名称 = { 初始化数据 }; 或表...原创 2021-10-27 14:51:36 · 977 阅读 · 0 评论 -
方法的使用
1.方法的基本用法 1.1什么是方法 1.2方法的定义语法 1.3方法调用的执行过程 1.4形参和实参的关系 1.5没有返回值的方法 2.方法的重载 2.1重载解决的问题 2.2使用重载 2.3重载的规则 3.方法的递归 3.1递归的概念 3.2递归执行过程分析 3.3递归练习 3.4递归小结 ...原创 2021-10-24 13:02:02 · 456 阅读 · 0 评论 -
程序逻辑控制
顺序结构 分支结构 循环结构原创 2021-10-21 15:37:46 · 423 阅读 · 0 评论 -
数据类型与运算符
1变量和数据类型 1.1整型变量 1.1.1 字节型变量 基本语句格式: byte 变量名=初始值; 代码示例: byte value=0; System,out.println(value); 注意事项: 1. 字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 ) 2. 字节类型和字符类型互不相干 1.1.2 短整形变量 基本语法格式: short 变量名 = 初始值; 代码示例: ...原创 2021-10-20 16:40:19 · 149 阅读 · 0 评论