数据结构与算法
文章平均质量分 91
数据结构与算法的各个经典模型的详细讲解
大海里的番茄
22级非科班学生一枚,对于编程的喜爱无法自拔,希望能够和大家共同进步
展开
-
归并排序含非递归版
思考一下,新创建的函数的参数应该有哪些,首先得有原数组,其次得有我们开辟好的数组,而我们要如二叉树一般形成对应的递归,显然需要区间,而区间的形成需要两个数来辅助,因此可以传递两个代表区间的数进来,可以取名为begin,end(left,right),这样理解起来轻松一些。再想一想细节,end1越界了,begin2一定越界,而begin2越界,end1不一定越界,所以无需考虑end1越界,只要begin2越界就说明排序已完成直接break 而只有end2越界,便将end2修正成数组的最大下标即可。原创 2023-10-04 20:48:20 · 801 阅读 · 92 评论 -
冒泡排序和选择排序
因此我们可以通过一个flaw变量来实现,每次进行新的一趟排序前,先将flaw变量初始化为1,一旦发生交换就令它为0,再在最外面根据flaw来判断是否发生了交换,如果发生了交换,那么数组依然无序,若是没有,则有序,结束函数。原创 2023-10-03 11:53:44 · 1582 阅读 · 44 评论 -
栈和队列详解(2)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。可以形象地将队列想象成生活中的挤地铁,在挤地铁的时候我们只能够从后面进入队伍,出也只能够从队头出到地铁。队列是只支持尾插头删的线性表。原创 2023-08-11 12:08:46 · 359 阅读 · 8 评论 -
栈和队列详解(1)
栈通常也称作堆栈、堆叠或简称电梯。在栈中,添加或删除元素只能在同一端进行,这一端被称为栈顶。当向栈顶添加一个元素时,我们称之为入栈;当从栈顶删除一个元素时,我们称之为出栈。栈和我们之前所学习过的顺序表很相似,区别就在于,顺序表支持尾插尾删,头插头删,而栈只支持后进先出也就是只支持尾插尾删。它就像一个竖井,当队伍走进这个井后,要退出来也只能是队伍的末端最先退出。这里博主给大家画了张图,方便大家好理解。原创 2023-08-11 10:32:11 · 794 阅读 · 64 评论 -
带头循环双向链表详解
1.带头:有哨兵位节点,它不用存储数据。对链表进行插入删除操作时也不会影响改节点。2.双向:组成链表的结构体中的结构体成员有数据,上一个节点的地址和下一个节点的地址3.循环:链表的头结点存储了尾结点的地址,链表的尾结点存储了头节点的地址。原创 2023-08-03 12:21:15 · 583 阅读 · 76 评论 -
手把手教你怎么写顺序表
由图可知,我们要先将最后面的成员往后挪动到下一个空间中,也就是sz对应的空间内容,得是sz-1的空间内容,sz-1的内容得是sz-2的内容,那么就可以通过循环的方式实现,sz-i指向的内容等于sz-i-1指向的内容,i实现一步步的覆盖,这里面比较难想的就是i的范围,由目标分析可知,当sz-i-1=0的时候结束循环,为什么?,因为当sz-i-1=0的时候,sz-i等于1,也就是1对应的目标,等于0对应的目标,完成这一步之后,所有的覆盖就已经结束,根据计算可知,i=sz-1,故i<sz便可以实现所有的覆盖。原创 2023-07-28 12:22:43 · 1207 阅读 · 43 评论 -
时间复杂度详解
算法效率是指算法执行的时间,算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。原创 2023-07-24 10:47:15 · 1302 阅读 · 35 评论 -
一文教会你单向链表
链表是是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。比较通俗易懂的说法就是,在计算机内存中开辟了一个个空间,然后通过地址的方式将它们链接在一起,并通过地址的方式进行访问。在手动创建链表之前,我们要先对链表进行定义,对链表的定义,接口函数的引用和头文件的引用最好放在一个头文件中这样在要使用创建的接口时便只需要引用一个头文件即可,而接口函数的实现你也可以放在一个.c文件中,最后在另一个.c文件中引用函数测试即可,如图://链表博客版.h。原创 2023-07-30 14:49:37 · 1154 阅读 · 64 评论