- 博客(6)
- 收藏
- 关注
原创 经典排序算法之二:选择排序
一、选择排序的思想及优化思路(升序为例) 思想:假设给定一个大小为n的数组,从中选出最大的值(记录下标)与下标n - i的值进行交换(i∈[1, n - 1],i为循环次数),即遍历一次交换一次,每次遍历确定一个最大值。 优化思路:使用一种快速查找最值的方法可降低选择排序的时间复杂度,例如使用堆这种数据结构,可在O(logn)的情况下找到最值 二、代码实现 普通代码,cmp()功能为array[maxIndex] - array[begin],swap()功能为交换两个下标所在值。 for (int end
2020-09-16 17:50:25
195
原创 经典排序算法之一:冒泡排序
1.排序算法的分类 1 分为比较排序(Comparison Sorting)如冒泡、选择、插入、归并、希尔、堆、快速排序与非比较排序。 二、冒泡排序的思想及优化思路(升序为例) 思想:从头开始比较一对相邻元素,若第一个元素大于第二个元素则交换位置,执行完一次遍历后,最末尾元素即最大值,忽略上次最大值,重复执行,直到全部数据有序。 优化思路一:当全部数据处于有序状态时,可通过一次遍历确定有序状态,可直接结束循环。 优化思路二:当最后部分数据有序且有序部分最小值大于无序部分最大值(有序部分
2020-09-15 15:59:04
406
原创 Java基础学习——多线程
一、为什么要学习多线程 二、多线程的作用 三、优势 四、如何创建多线程 1.通过继承Thread类创建多线程,步骤如下 ①创建一个子类继承多线程 ②该子类重写run() ③创建该子类的实例 ④子类对象调用start方法 2.实现Runable接口 ①创建一个类实现Runable接口 ②该类重写run() ③创建该类实例 ④创建Thread类实例,将③的对象以参数的形势传入构造方法 ⑤Thread类实例调用start方法 3.实现callable接口 4通过线程池的方式 五、线程安全问题 多个线程同
2020-08-15 00:03:39
175
原创 初学MyBatis时碰到的问题
一、org.apache.ibatis.binding.BindingException: Type interface XXX is not known to the MapperRegistry. 背景是初学MyBatis,刚刚学会简单的XML文件的配置,准备初步学习注解的使用,在我需要测试的接口上添加完注解之后,在MyBatis的核心配置文件中使用注解,一开始想试试OrdersMapperXML配置,UserMapper使用注解 <mappers> <!-- &l
2020-08-04 22:31:43
306
原创 SpringMVC错误记录
一、Could not open ServletContext resource [/jdbc.properties] 项目资源如下 在spring配置文件(applicationContext.xml)中加载jdbc.properties时引入文件 <context:property-placeholder location="jdbc.properties"/>时正常,之后配置DataSource时也正常可以访问到值,但是启动Tomcat后出现错误Could not...
2020-08-02 11:32:52
419
原创 Java中==与equals方法的区别
先上代码 public static void main(String[] args) { String a="A";//基本数据类型 String b="A"; String c=new String("A");//引用数据类型 String d=new String("A"); System.out.println("1."+(a==b));//==基本数据类型比较 System.out.println("2."+(c==d));//引用数据类型的比较 System.out.
2020-05-27 01:27:16
228
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人