随笔分类 -  数据结构

摘要://1.计算度为2 度为1 度为0的结点个数 void Count(BiTree bt) { if(bt) { if(bt->lchild && bt->rchild) n2++; else if(bt->lchild && !bt->rchild || bt->rchild && !bt->lch 阅读全文
posted @ 2020-09-19 21:30 Akmf's_blog 阅读(145) 评论(0) 推荐(0)
摘要:结构: typedef int ElemType; typedef struct LNode { ElemType val; struct LNode *next; }*LinkedList; //将一个没有头结点的结点数据为字符的单链表,分解成还有字母字符、数字字符和其他字符的三个带头节点的循环链 阅读全文
posted @ 2020-07-24 16:57 Akmf's_blog 阅读(160) 评论(0) 推荐(0)
摘要:堆排序属于选择排序 选择排序的基本思想: 每一趟(第i趟)在后面n-i+1个待排序的元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第 n-1趟做完,待排序元素只剩下1个,就不用再选了。 堆排序适合关键字较多的情况(n>1000) 比如:在1亿个数中选出前100个最大值? 首先使用一个大 阅读全文
posted @ 2020-07-20 20:19 Akmf's_blog 阅读(116) 评论(0) 推荐(0)
摘要:冒泡排序属于交换排序 从前往后(从后往前)两两比较交换,第一趟可以将最小的元素交换到待排序的第一个位置(或将最大的元素交换到待排序的最后一个位置). 下一趟排序之前排好序的元素就不用再参与比较了. 最坏情况下时间复杂度是O(\(n^2\)),最好的情况是o(n),平均时间复杂度是O(\(n^2\)) 阅读全文
posted @ 2020-07-20 18:33 Akmf's_blog 阅读(112) 评论(0) 推荐(0)
摘要:快速排序算法是一种基于交换的高效的排序算法,它采用了分治法的思想 1.基本实现 1、从数列中取出一个数作为基准数(枢轴,pivot)。 2、将数组进行划分(partition),将比基准数大的元素都移至枢轴右边,将小于等于基准数的元素都移至枢轴左边。 3、再对左右的子区间重复第二步的划分操作,直至每 阅读全文
posted @ 2020-07-20 18:24 Akmf's_blog 阅读(146) 评论(0) 推荐(0)
摘要:选择排序即简单选择排序 最坏的时间复杂度是O(\(n^2\)),最好的时间复杂度也是O(\(n^2\)),平均时间复杂度是O(\(n^2\)) 没有用到额外的空间 所以空间复杂度是O(1) 选择排序是不稳定的 void selectionsort(vector<int> &a) { for(int 阅读全文
posted @ 2020-07-20 18:00 Akmf's_blog 阅读(163) 评论(0) 推荐(0)
摘要:堆排序部分 阅读全文
posted @ 2020-07-10 16:15 Akmf's_blog 阅读(231) 评论(0) 推荐(0)
摘要:希尔排序 空间复杂度为O(1) 时间复杂度为最坏情况为O(\(n^{2}\)),最好情况是O(\(n^{1.3}\)),平均为O(nlogn) 是不稳定的 #include<iostream> using namespace std; #include<vector> typedef int Ele 阅读全文
posted @ 2020-07-09 19:56 Akmf's_blog 阅读(104) 评论(0) 推荐(0)
摘要:折半插入排序 空间复杂度O(1) 时间复杂度最好情况是O(nlogn) 最坏情况是O(n²),平均为O(n²) 与直接插入排序相比,折半插入排序在查找插入位置上面所花的时间大大减少 比较次数减少了,但是移动次数没变 对于数据量不大的排序表,能表现很好的性能 稳定的排序方法 #include<iost 阅读全文
posted @ 2020-07-09 18:04 Akmf's_blog 阅读(137) 评论(0) 推荐(0)
摘要:直接插入排序 空间复杂度O(1) 时间复杂度最好情况是O(n),最坏情况是O(n²),平均情况是O(n²) 是稳定的内排序算法 从后往前比较,把后面的元素作为哨兵 #include<iostream> using namespace std; #include<vector> void Insert 阅读全文
posted @ 2020-07-09 17:05 Akmf's_blog 阅读(137) 评论(0) 推荐(0)
摘要:#include<iostream> using namespace std; typedef int ElemType; #define MAXSIZE 5 typedef struct { ElemType data[MAXSIZE]; int front; int rear; }SqQueue 阅读全文
posted @ 2020-07-08 19:13 Akmf's_blog 阅读(58) 评论(0) 推荐(0)
摘要:#include<iostream> using namespace std; #include<stack> #include<malloc.h> #include<vector> typedef int ElemType; #define MaxSize 100 typedef struct B 阅读全文
posted @ 2020-06-03 21:10 Akmf's_blog
摘要:"链栈" 阅读全文
posted @ 2020-05-20 20:16 Akmf's_blog 阅读(56) 评论(0) 推荐(0)
摘要:```#include #includeusing namespace std;#define Elemtype int#define Maxsize 50//带有头部节点的链栈typedef struct LinkNode{ Elemtype data; struct LinkNode *next;}*LiStack;//初始化void InitStack(LiStack &L){ ... 阅读全文
posted @ 2020-05-20 20:15 Akmf's_blog 阅读(82) 评论(0) 推荐(0)