数据结构与算法
文章平均质量分 77
复习,补充笔记
方池安夏
谎言不会伤人,真相才是快刀
展开
-
C++后台面试题汇总---持续更新中
从以下几个方面去讨论static的作用修饰的对象: 变量, 函数使用场景:作用是避免了命名重复, 对其他源文件隐藏该变量和隔离错误的作用,有利于模块化程序const关键字的作用:修饰变量两种:全局const和局部const,**注意:**在C语言中,局部const是可以通过指针进行修改的,而在C++中,会把const修饰的所有常量会加载到符号表当中,每次获取const常量都会在符号表中查询,因此C++中的局部const成员无法修改,而全局const不管C/C++都不能通过指针修改另外,关于const原创 2022-07-04 22:06:17 · 494 阅读 · 0 评论 -
七大排序算法---选择排序, 冒泡排序---持续更新中
常见算法,代码及案例演示原创 2022-06-28 15:51:09 · 104 阅读 · 0 评论 -
算法---贪心算法
贪婪算法(贪心算法) 是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有 利)的选择,从而希望能够导致结果是最好或者最优的算法。 请看下面案例,假设有如下课程,希望尽可能多的将课程安排在一间教室里:这个问题看似要思考很多,实际上算法很简单:贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最 优解的结果。 贪婪算法并没有固定的算法解决框架,算法的关键是贪婪策略的选择,根据不同的问题选择 不同的策略。基本思路...原创 2022-06-15 10:06:56 · 154 阅读 · 0 评论 -
算法---动态规划
一个楼梯有n个台阶,一次可以上1级台阶,也可以上2级台阶,求总共有多少走法?如图: 假如台阶有3级(n=3)第一种走法: 一次走1级二: 先走2级,再走1级三: 先走1级,再走2级共有3种走法.当然,随着台阶的增多,走法会越来越多,如果用常规的算法,一步一步去试的话,台阶越多越麻烦.分治法: 从上往下分析问题, 大问题可以分解为子问题, 子问题还有更小的问题例: 比如现在总共有5级台阶求多少种走法,由于每次可以走一级或者两级台阶,那么就可以拆分成两种情况:将求n级台阶共有多少走法用f(n)f原创 2022-06-10 17:59:34 · 108 阅读 · 0 评论 -
数据结构和算法的基本概念, 算法复杂度,时间,空间复杂度
目录概念大O时间复杂度表示法看几个例子(加法规则)(乘法规则)例子算法时间复杂度计算规则常见算法时间复杂度O(1)O(1)O(1):常数阶O(log2n)O(log_2^n)O(log2n):对数阶O(O(O(nnn ×\times× log2n)log_2^n)log2n):线性对数阶O(n2)O(n^2)O(n2):平方阶O(m∗n)O(m*n)O(m∗n)O(m+n)O(m+n)O(m+n)最好、最坏、平均情况时间复杂度总结排序空间复杂度概念a)数据结构:是研究数据之间组织结构的一门学科。数原创 2022-05-04 15:33:25 · 734 阅读 · 1 评论 -
数据结构---队列
队列队列一. 队列(1)队列定义(2)顺序存储实现1.元素类型2.判断队列3.初始化队列4.元素插入5.遍历队列一. 队列(1)队列定义队列图示队列是一种受限制的线性结构只允许在表的前端(front)进行删除操作, 而在表的后端(rear)进行插入操作(2)顺序存储实现入队满队列1.元素类型#define MaxSize 5 //最大容量typedef int DataType; //元素类型typedef struct Queue{ Da原创 2022-03-10 10:08:52 · 919 阅读 · 0 评论 -
数据结构---顺序表
目录顺序表原理顺序表的算法实现顺序表的初始化顺序表增加元素顺序表插入元素顺序表删除元素顺序表销毁顺序表遍历完整代码顺序表原理顺序表是简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以 快速定位第几个元素,中间不允许有空值,插入、删除时需要移动大量元素。顺序表的三个要素:用elems记录存储位置的基地址分配一段连续的存储空间size用length记录实际的元素个数,即顺序表的长度顺序表的算法实现顺序表的初始化#include <stdio.h>#原创 2022-03-06 18:26:57 · 839 阅读 · 0 评论 -
数据结构---链表
单向链表实现单向链表算法实现1.数据类型定义2.初始化空表3.前插法①空链表②插入第一个节点③插入第二个节点4.后插法5.任意位置插入数据6.按值查找数据7.删除8.单链表销毁循环链表算法实现1.数据类型定义2.初始化空表3.尾插法①空链表插入链表原理就不过多解释了,直接代码中理解吧单向链表算法实现1.数据类型定义typedef struct _LinkNode{ int data; //数据 struct _LinkNode* next; //下一节点指针}LinkNode, Link原创 2021-08-21 17:08:27 · 203 阅读 · 0 评论