
数据结构和算法
David 's blog
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
全排列(递归做法)
排列:从n个元素中任取m个元素,并按照一定的顺序进行排列,称为排列;全排列:当n==m时,称为全排列;比如:集合{ 1,2,3}的全排列为:{ 1 2 3} { 1 3 2 } { 2 1 3 } { 2 3 1 } { 3 2 1 } { 3 1 2 }排序思路:(递归) (1)n个元素的全排列=(n-1个元素的全排列)+(另一个元素作为前缀);(2)出口:如果...原创 2019-01-01 23:11:35 · 4214 阅读 · 1 评论 -
几种排序代码(冒泡 插入 希尔 选择 归并 堆排序 快速排序)、排序稳定性说明
零、关于排序稳定性的一些总结:0.1么是稳定性?答:排序算法的稳定性就是说保证排序前的2个相同数字的前后位置在排序后不发生改变。0.2几种算法稳定性比较:稳定性排序:冒泡、插入、归并、基数不稳定排序:希尔、选择、堆排序、快速排序0.3稳定性分析:0.1冒泡:比较相邻位置的元素,比较大小然后选择是否交换,如果相等不会做处理,所以如果两个数相等,排序后他们的前后位置是不变的...原创 2018-12-31 00:04:55 · 574 阅读 · 0 评论 -
【数据结构】红黑树
一、概念:(参考百科)1数据结构红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log )时间内做查找,插入和删除,这里的是树中元素的数目。它的统计性能要好于平衡二叉树(有些书籍根据作者姓名,Adelson-Velskii和Landis,将其称为AVL-树)...原创 2019-07-19 15:02:27 · 333 阅读 · 0 评论 -
【数据结构】二叉搜索树 BST
一、概念:二叉搜索树:又叫二叉排序树,它或者是一棵空树;或者是具有以下性质的二叉树:1. 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;2. 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;3. 它的左右子树也分别为二叉排序树。(为什么要交二叉查找树或者说二叉搜索树,因为它的性质决定了,它能利用二分查找实现快速查找。)如下图所示:看到这个概...原创 2019-06-23 21:23:26 · 255 阅读 · 0 评论 -
【数据结构】AVL树
一、概念AVL树:高度平衡的二叉搜索树,共有继承了BST树,有BST树的全部特性。AVL树的左孩子、右孩子树都是AVL树,并且左子树,右子树的高度差(右子树高度 - 左子树高度)不超过1高度差:结点的平衡因子。如图,该树各个节点的平衡因子,有超过1,所以这不是一个AVL树。二、AVL树的作用:对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵...原创 2019-06-30 17:49:39 · 632 阅读 · 0 评论 -
【算法】哈希、一致性哈希
--------------------------------------------------------此篇博客想写什么?我的理解:1.关于哈希算法:概念、理解、应用 MD5如何运用在项目中的用户名登录注册加密上?2.关于一致性哈希:概念、详解、应用 关于分布式、集群的概念和区别?---------------------------------------...原创 2019-05-09 17:56:48 · 415 阅读 · 0 评论 -
【算法】OpenSSL库介绍,关于MD5加密的应用:shell命令以及库函数
零:前言(与正文内容无关):1.写项目中,关于用户注册登录时的密码,如何加密传输,困扰了我太久太久。。。主要因为自己的思路走进一个怪圈,导致进度一直卡着。。。准备写用户密码加密这个部分的时候,我对加密没有任何了解,所以先百度了一波,看到各种让我头大的没见过的名词:什么对称加密,非对称加密,不可逆加密,DES,AES······,在后来,网上发帖求助,有位大佬说了OpenSSL,便没了音信。...原创 2019-05-10 10:57:00 · 1141 阅读 · 0 评论