数据结构与算法
文章平均质量分 84
chenkaifang
这个作者很懒,什么都没留下…
展开
-
支配世界的几个重要算法
算法原创 2022-08-21 07:47:05 · 104 阅读 · 0 评论 -
algo update
非算法岗位没必要把每一个算法都能手默,但是熟悉一些基本算法及其使用条件和局限,对于写业务代码来说也很重要。另外,对于老人来说,可以预防老年痴呆(手动狗头)。1、summary,慢慢学10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。https://zhuanlan.zhihu.com/p/93398256https://www.cxyxiaowu.co原创 2020-12-27 21:03:41 · 88 阅读 · 0 评论 -
大数据排序算法总结学习
原址:https://blog.csdn.net/zhushuai1221/article/details/517810021、对于很大的数据量,考虑多级索引和桶排序;2、建立一个足够大的bit数组当作hash表,以bit数组的下标来表示一个整数,以bit位中的0或1来表示这个整数是否在这个数组中存在,适用于无重复原始数据的搜索,原来每个整数需要4byte空间变为1bit,空间压缩率...原创 2020-05-04 10:48:21 · 637 阅读 · 0 评论 -
善用Linux内核中的各种数据结构和算法
1、介绍在数据结构和算法一文中经常就信手拈来一些基本数据结构和算法,如链表、队列、栈、二叉树等等,但是在C的标准库中并没有自带这些,C++通过STL、类程序库等等会带这些,那么在嵌入式开发里面怎么快速方便使用这些数据结构和算法咧?答案就是从Linux内核或者模块程序里去学习这些算法,Linux里面的实现是经过了千锤百炼的,在标准化、复杂度和效率上应该比一般人写的好得多,所以先去学习下大神们的代...原创 2019-07-28 16:41:05 · 591 阅读 · 0 评论 -
二叉树
主要参考博文:https://blog.csdn.net/u012152619/article/details/42059325https://blog.csdn.net/define_us/article/details/52097681二叉树可以综合利用有序数组查找快优势和链表插入删除快的优势。0、二叉树介绍根是第0层。上图深度为3,深度从0开始计算。二叉树的遍历主...原创 2018-08-03 07:42:11 · 117 阅读 · 0 评论 -
栈
栈是LIFO的,一般用数组来实现栈,当然也可以用链表实现。栈的最基本操作有出栈、入栈、判空、判满、取栈顶元素等。保持一般性,栈顶元素指向栈最新插入的元素(注意和PC分开,PC指向下一个可用地址)。1、栈的基本实现public class Stack{ private int[] data; private int top = -1; private int max_length...原创 2018-07-22 11:11:01 · 138 阅读 · 0 评论 -
数据结构与算法分析概括
参考博文:https://blog.csdn.net/u012152619/article/details/420596751、时间复杂度之间的关系:O(1)<O(logn)<O(n)<O(nlog n)<O(n2)<O(2n)<O(n!)<O(nn)2、常用算法设计思想枚举法贪心法分治法回溯法动态规划法分支限界法3...原创 2018-07-22 08:22:58 · 515 阅读 · 0 评论 -
排序算法
本节分析及实现8大排序算法及其改进。使用了外存(一般是磁盘)的排序称为外部排序,否则是内部排序。1、冒泡排序每次排序将一个最大值放到待排序数组的末尾。实现如下:public class Sort{ private int[] array; public Sort(int[] array){ this.array = array; } public void dis...原创 2018-07-29 21:33:57 · 222 阅读 · 0 评论 -
链表
链表是链式存储结构所用的数据结构。根据结点中保存的索引类型分为单链表、双端链表、有序链表和双向链表。单链表的实现如下:class Link{ public int key; public String value; public Link next; public Link(int key,String value){ this.key = key; this.val...原创 2018-07-29 16:05:23 · 269 阅读 · 0 评论 -
零散算法
1、字符串匹配朴素的串匹配算法:KMP匹配算法:2、广度优先搜索BFS3、深度优先搜索DFS4、狄克斯特拉算法Dijkstra5、贪婪算法6、动态规划7、安全散列算法SHA用递归分析问题,基于循环写代码。10、关于查找算法(1)遍历(数组、链表、xml)(2)二分查找(前提有序)(3)hash表查找:哈希表的特点就是查找效率高,时间复杂度为常数级...原创 2018-07-29 12:38:08 · 220 阅读 · 0 评论 -
队列
1、与栈相比,队列是FIFO的,为了避免队列溢出,保持灵活性,一般使用循环队列,那么front元素不一定指向队列的第一个位置,因为队列在不断变化。基本循环队列的实现如下:public class Queue{ private int front = 0; private int rear = 0; private int[] data; private int length = ...原创 2018-07-23 22:55:36 · 148 阅读 · 0 评论