
数据结构
文章平均质量分 51
佑尘
知行合一,道术兼修,内圣外王
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序<5>归并排序
1.什么是归并排序归并排序就是将无法再二分的两个有序小序列,利用多项式相加原理,合并成一个大的有序序列的过程。举个例子:不能继续二分的小序列 ( 8 7 6 5 4 3),实际上指的就是8,7,6,5.....这些单个的数字。对于8 7这两个序列来说,各自都只有一个元素,利用多项式相加原理,将其视为多项式系数进行比较,较小的放在前面,较大的放在后面于是就得到7 8这样的一个有序的较大序列。依次对剩余的两个序列运用上...原创 2021-02-01 14:27:02 · 241 阅读 · 0 评论 -
排序<4>堆排序
1.什么是堆排序2.堆排序的关键点3.怎么用堆排序#include "maxHeap.h"#define MAXELEMENT ((unsigned short)0-1)/* Complete Binary Tree attribute** node : A C E G J L N Q T* index : 1 2 3 4 5 6 7 8 9* * A(1)* / ...原创 2021-01-31 15:36:24 · 248 阅读 · 0 评论 -
最大(小)堆
目录1.什么是最大堆2.最大堆问题的关键点3.怎么用最大堆1.什么是最大堆最大堆就是根节点值是所有节点中最大的,且其左右子树也分别是最大堆这样的树。反之就是最小堆2.最大堆问题的关键点最大堆是用数组存储的完全二叉树,利用了完全二叉树的父节点和子节点的关系性质,和完全二叉树本身插入和删除的性质(即要保证插入和删除操作后其还是完全二叉树结构)。举个最大堆、最小堆的例子最大堆问题的关键点就是如何在插入和删除后,将其调整成一个完全二叉树结构。插入操作.原创 2021-01-28 14:25:02 · 1222 阅读 · 0 评论 -
排序<3>希尔排序(基于Sedgewick增量序列)
1.什么是希尔排序2.希尔排序的关键点3.希尔排序怎么用typedef int ElmentType;void ShellSort(ElmentType S[], int N){ int Si,d; /* 这里只列出一小部分增量 */ int Sedgewick[] = {260609,146305,64769,36289, 16001,8929,3905,2161,929, 5...原创 2021-01-20 08:16:39 · 2047 阅读 · 0 评论 -
排序<2>插入排序
1.什么是插入排序插入排序就是从一个乱序的待排序列中一次拿一个元素,从拿到的第二个元素开始,和现已拿出的元素从后往前(或从前往后)比较,指定比前面(后面)元素大(小),就找到了他的位置,在相应的位置放入拿出的这个元素。依次类推。2.插入排序的关键点插入排序可以不需要额外的空间就可以完成,因为当从待排序列中拿出一个元素时,它所在的位置就空了出来,用这个空位就可以用来挪位。举个例子,有待排序列如9 2 1 8,需求是按递增顺序排序。开始第一个元素不用动,从第二个元素开始,把2拿出来,2的位置空...原创 2021-01-18 08:03:21 · 191 阅读 · 0 评论 -
排序<1>冒泡排序
目录1.什么是冒泡排序2.冒泡排序的关键点3.冒泡排序应用1.什么是冒泡排序 假设待排序列为9 6 4 2 7 8 5 3 1,要求是让待排序列按递增顺序排列。冒泡排序就是对待排序列扫描一次,就可以使得最大的9就位。具体过程排序过程是:先9和6比较,比6大所以位置互换得到694 2 7 8 5 3 1,然后9和4做比较,比4大互换位置得到6 4 92 7 8 5 3 1,接着和2进行比较,比2大互换位置得到6 4 2 9 7 8 5 3 1。。。。就这样一直比较...原创 2021-01-17 15:22:03 · 263 阅读 · 0 评论 -
哈希表
数据结构 哈希表 散列函数 哈希冲突原创 2021-01-16 20:07:40 · 252 阅读 · 0 评论 -
AVL 树
目录 1. 单左旋 2. 单右旋 3.左右双旋 4.右左双旋 AVL树就是平衡二叉搜索树,说它是平衡的,主要是因为N次插入操作后,除叶节点外,任何一个节点的左右子树的高度不会大于1,注意是左子树和右子树的高度差。说它是搜索树是因为任何一个非叶节点的值比它的左儿子节点的值大,比它右儿子节点的值小。搜索的时间复杂度就是树的高度。有多变态?一颗三十层的AVL树如果放满的话总共有2的30次方减1这么多个节点,...原创 2020-10-29 13:56:12 · 190 阅读 · 0 评论