算法学习
yeLinMe
这个作者很懒,什么都没留下…
展开
-
springboot09-wapper
springbootWapper(条件构造器)AbstractWrapperge、gt、le、lt、isNull、isNotNulleq、nebetween、notBetweenWapper(条件构造器)AbstractWrapper注意:以下条件构造器的方法入参中的 column 均表示数据库字段ge、gt、le、lt、isNull、isNotNull@Testpublic voi...原创 2020-05-05 20:10:44 · 155 阅读 · 0 评论 -
sort07-排序的稳定性
sort排序的稳定性稳定性的定义稳定性的意义:常见排序算法的稳定性:冒泡排序:选择排序:希尔排序:归并排序:快速排序:排序的稳定性稳定性的定义数组arr中有若干元素,其中A元素和B元素相等,并且A元素在B元素前面,如果使用某种排序算法排序后,能够保证A元素依然在B元素的前面,可以说这个该算法是稳定的。稳定性的意义:如果一组数据只需要一次排序,则稳定性一般是没有意义的,如果一组数据需要多...原创 2020-05-01 22:25:26 · 487 阅读 · 0 评论 -
sort06-快速排序
sort快速排序排序原理:需求切分原理:代码实现快速排序和归并排序的区别:快速排序时间复杂度分析:快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。排序原理:1.首先设定一个分界值,通...原创 2020-05-01 22:15:51 · 233 阅读 · 0 评论 -
sort-05归并排序
sort归并排序排序原理归并原理代码实现归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。排序原理1.尽可能的一组数据拆分成两个元素相等的子组,并对每一个子组继续拆分,直到拆分后的每个子组的元素个数是1为止。2....原创 2020-04-30 21:46:05 · 135 阅读 · 0 评论 -
sort04-希尔排序
sort希尔排序排序原理需求代码实现希尔排序的时间复杂度分析希尔排序希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。排序原理1.选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组;2.对分好组的每一组数据完成插入排序;3.减小增长量,最小减为1,重复第二步操作。增长量 h的确定:增长量h的值每一固定的规则,我们这里采用以下规则:...原创 2020-04-30 21:10:40 · 151 阅读 · 0 评论 -
sort03-插入排序
sort插入排序排序原理:需求:插入排序代码实现:插入排序的时间复杂度分析插入排序插入排序(Insertion sort)是一种简单直观且稳定的排序算法。插入排序的工作方式非常像人们排序一手扑克牌一样。开始时,我们的左手为空并且桌子上的牌面朝下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。排序原理:1...原创 2020-04-26 22:03:33 · 540 阅读 · 0 评论 -
sort02-选择排序
sort选择排序需求排序原理:选择排序的代码实现选择排序的时间复杂度分析:选择排序选择排序是一种更加简单直观的排序方法需求排序前:{4,6,8,7,9,2,10,1}排序后:{1,2,4,5,7,8,9,10}排序原理:1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引出的值为最小值,...原创 2020-04-26 19:51:53 · 233 阅读 · 0 评论 -
sort01-冒泡排序
sort冒泡排序Comparable 接口介绍冒泡排序排序原理:冒泡排序的代码实现:排序前:排序后:冒泡排序的时间复杂度分析冒泡排序Comparable 接口介绍Java提供了一个接口Comparable就是用来定义排序规则的。详情参考api文档。冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法排序原理:比较相邻的元素。如果前一个元素比后一个元素大...原创 2020-04-26 19:43:29 · 166 阅读 · 0 评论 -
算法分析-空间复杂度
空间复杂度java中常见的内存占用java中常见的内存占用2. 计算机访问内存的方式都是一次一个字节3. 一个引用(机器地址)需要8个字节表示:例如: Date date = new Date(),则date这个变量需要占用8个字节来表示4.创建一个对象,比如new Date(),除了Date对象内部存储的数据(例如年月日等信息)占用的内存,该对象本身也有内存开销,每个对象...原创 2020-04-23 23:14:01 · 271 阅读 · 0 评论 -
算法分析-时间复杂度
时间复杂度算法分析-时间复杂度时间估算方法事后分析估算方法事前分析估算方法大O记法定义:大O记法规则算法分析-时间复杂度时间估算方法事后分析估算方法比较容易想到的方法就是我们把算法执行若干次,然后拿个计时器在旁边计时,这种事后统计的方法看上去的确不错,并且也并非要我们真的拿个计算器在旁边计算,因为计算机都提供了计时的功能。这种统计方法主要是通过设计好的测试程序和测试数据,利用计算机计时器对...原创 2020-04-23 23:07:43 · 932 阅读 · 0 评论