时间复杂度的度量方法 接上文,在理解了时间复杂度的概念后,就可以根据实际的代码进行度量了,以下举例了几个常用的时间复杂度的表示,对于如何度量其最重要的是观察程序中的循环结构,每一个循环结构代表执行循环中的指令n次,而其余指令一般而言一行代码代表执行一次,对于一个程序而言, 数据结构入门 2022年04月08日 280 点赞 0 评论 134418 浏览
循环链表的基本操作及C语言代码实现 如图,对于插入数据的操作,基本与单链表的插入操作相同,我们可以创建一个独立的结点,通过将需要插入的结点的上一个结点的next指针指向该节点,再由需要插入的结点的next指针指向下一个结点的方式完成插入操作。其代码可以表示为://插入元素list*insert_list(list*head, 链表 2022年02月07日 75 点赞 0 评论 121270 浏览
动态查找-二叉排序树介绍与实现 1.算法简介二叉排序树(BinarySortTree),又称二叉查找树(BinarySearchTree),亦称二叉搜索树。该树属于一种输入数据就默认产生一种顺序的数据结构,这不像本章前面的内容所描述的静态的在某一个数据段内进行查找,动态查找是一种输入时就会自动对其进行排序的数据结构, 查找算法 2022年05月03日 176 点赞 0 评论 100795 浏览
C++STL之Priority_queue(优先队列) 1.简介优先队列是一种极其特殊的队列,他与标准的队列使用线性结构进行计算不同,优先队列的底层是以散列的状态(非线性)表现的,他与标准的队列有如下的区别,标准的队列遵从严格的先进先出,优先队列并不遵从标准的先进先出,而是对每一个数据赋予一个权值, C++STL库教程(附带题库) 2022年01月04日 84 点赞 0 评论 141560 浏览
动态规划DP算法详解 1.简介动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decisionprocess)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistepdecisionprocess)的优化问题时, 算法和竞赛 2022年02月15日 67 点赞 0 评论 101893 浏览
C++中string字符串类型介绍 1.简介C语言中通过字符相连已经基本创造出了字符串的常规操作,然而,字符串在C语言中并不是常规类型,而是一个类似于数组的结构,在C++中,通过模板类的操作创建了string类,这样的方法更适合于现代的操作编程。2.头文件&命名空间#include<string>//头文件注意不是<string.h>也 串、数组、矩阵和广义表 2022年03月19日 228 点赞 0 评论 112323 浏览
最小生成树,克鲁斯卡尔(Kruskal)算法及C/C++代码实现 1.克鲁斯卡尔算法简介克鲁斯卡尔(Kruskal)算法是一种用来寻找最小生成树的算法(用来求加权连通图的最小生成树的算法)。在剩下的所有未选取的边中,找最小边,如果和已选取的边构成回路,则放弃,选取次小边。而具体的操作过程为:a)将图的所有连接线去掉, 图 2022年05月19日 185 点赞 0 评论 137119 浏览
数据结构与算法入门 1.序欢迎阅读本教程。本套教程由UDP广播协议叫吃饭编写,面向对计算机编程有一定基础的同学,如果你对计算机完全属于一种小白的状态,建议前往(C语言教程)以及(C++教程)进行基础的学习。本教程IDE采用来自https://sourceforge.net/projects/orwelldevcpp/下载 数据结构入门 2022年04月25日 292 点赞 0 评论 125718 浏览
顺序存储和链式存储 1.再谈数组—顺序存储我们在开始计算机课程没多久后就已经知晓了数组的概念,数组作为一个顺序储存方式数据结构为我们的程序设计带来了大量的便利,几乎任何的高级程序设计,算法设计都离不开数组的灵活使用,但是,数组最大的缺点就是我们的插入和删除时需要移动大量的元素,显然这需要消耗大量的时间。 链表 2022年04月15日 209 点赞 0 评论 107685 浏览
堆排序算法实例详解 1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(nlogn)稳定性:不稳定排序2.什么是堆?堆排序是一个比较特殊的排序方式,在学习之前我们必须要了解什么是堆堆是一种非线性的数据结构,可以把堆看作一个数组, 排序算法 2022年03月31日 84 点赞 0 评论 69670 浏览