
数据结构与算法(java实现)
爱的叹息
to be or not to be ,this is a question
展开
-
LeetCode——2、两数相加
LeetCode——2、两数相加原创 2022-06-18 07:38:05 · 167 阅读 · 0 评论 -
LeetCode——1、两数之和
LeetCode——1、两数之和原创 2022-06-18 07:31:45 · 89 阅读 · 0 评论 -
java实现算法:等差数列求和——2
等差数列求和原创 2022-06-11 22:27:36 · 419 阅读 · 0 评论 -
java实现算法:基数为1,偶数为-1,计算n个这样的数之和——1
算法基数为1,偶数为-1,计算n个这样的数之和原创 2022-06-11 14:04:12 · 297 阅读 · 0 评论 -
数据结构之稀疏数组
稀疏数组的定义和应用稀疏数组思路原创 2022-03-05 08:08:46 · 187 阅读 · 0 评论 -
数据结构概览
数据结构包括:线性结构和非线性结构数据结构类型 线性结构 数组 队列 链表 栈 非线性结构 二维数组 多维数组 广义表 树结构 图结构原创 2022-03-05 07:30:58 · 201 阅读 · 0 评论 -
算法学习参考视频课程
1、数据结构与算法基础(青岛大学-王卓)_哔哩哔哩_bilibili转自up主 @青岛大学-王卓 https://space.bilibili.com/40323036?spm_id_from=333.788.b_765f7570696e666f.2为方便学习和观看视频。 已经咨询过王卓老师,并同意转载 没有PPT 《数据结构C语言版第二版》 中国工信出版集团 人民邮电出版社出版 严蔚敏 编著老师说只要有数据结构的教材就可以,内容都是相似https://www.bilibili.com/video/BV原创 2022-02-24 07:36:21 · 1377 阅读 · 0 评论 -
算法图解——の——二分查找【附带pdf下载链接】
1、二分查找要求输入集合有序,所以好多算法会涉及到排序2、二分查找效率高,用二分查找最多需要log 2 n步,而简单查找最多需要n步举例说下,例如1.2.3......1024,二分查找最多需要log2 1024即10次,而普通查找最多需要1024次,发现有100倍的差距,数量越大,越明显下面列出二分查找的java代码供参考,两个 不同的区别是,如果输入集合只有一个时,的代码拆分与整合。/** * Created by burns. * * @author <a href=原创 2021-03-21 09:35:57 · 4302 阅读 · 5 评论 -
java八大经典排序算法简单对比
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序。8种排序之间的关系:当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排...转载 2019-07-10 22:18:53 · 217 阅读 · 0 评论 -
java基数排序
基数排序稳定性:稳定基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序,最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序基于分别排序,分别收集,所以其是稳定的排序算法。基数排序基本思想像选择排序、插入排序、快速排序等都是基于两个元素的比较进行排序...原创 2019-07-13 12:16:39 · 417 阅读 · 0 评论 -
java归并排序
归并排序 稳定性:稳定归并排序是把序列递归地分成短序列,递归出口是短序列只有1个元素(认为直接有序)或者2个序列(1次比较和交换),然后把各个有序的段序列合并成一个有序的长序列,不断合并直到原序列全部排好序。可以发现,在1个或2个元素时,1个元素不会交换,2个元素如果大小相等也没有人故意交换,这不会破坏稳定性。那么,在短的有序序列合并的过程中,稳定是是否受到破坏?没有,合并过程中我们可以保证...原创 2019-07-13 12:14:24 · 213 阅读 · 0 评论 -
java交换排序算法的2个实现(冒泡排序排序、快速排序)
冒泡排序稳定性:稳定冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。快速排序稳定性:不稳定快速排序有两个方...原创 2019-07-13 10:41:06 · 453 阅读 · 0 评论 -
java选择排序算法的2个实现(直接选择排序、堆排序)
选择排序稳定性:不稳定选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n - 1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。那么,在一趟选择,如果当前元素比一个元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。比较拗口,举个例子,序列5 8 5 2 9,我们知道第一遍...原创 2019-07-13 10:16:53 · 386 阅读 · 0 评论 -
java插入排序算法的3个实现(直接插入排序、二分法插入排序和希尔排序)
插入排序稳定性:稳定插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原...原创 2019-07-13 08:51:42 · 286 阅读 · 0 评论 -
Java排序之一【冒泡排序(四种情况)】
Java排序最常见的就是冒泡排序了,最近整理了下,分四种情况:升序,先把最大的放在最后面 bubbleSortByASC_MaxFirst(intArr);升序,先把最小的放在最前面 bubbleSortByASC_MinFirst(intArr);降序,先把最小的放在最后面 bubbleSortByDESC_MinFirst(intArr);降序,先从把最大的放在最前面 bubbl原创 2017-05-18 00:06:40 · 1076 阅读 · 0 评论 -
选择排序(java实现)
在开始之前,大家应该先了解什么是选择排序,这里给些相关材料大家可以学习下1. 百度百科定义:选择排序2. 选择排序演示视频:视频: 选择排序Select Sort排序舞蹈3. Flash:http://ds.fzu.edu.cn/fine/resources/FlashContent.asp?id=854. 选择排序个人觉得比较好的定义: 选择排序法的第一层循环从起始元素开始选到倒数第二个元素,原创 2015-08-22 07:58:07 · 914 阅读 · 0 评论 -
插入排序(java实现)
1. 定义:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将原创 2015-08-26 20:38:12 · 541 阅读 · 0 评论