![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
小陈没烦恼
现在的努力只为将来遇见更好的你!
展开
-
简单选择排序Java版本
选择排序概念选择排序的工作原理是每一次从待排序的数据元素中,选出最小或最大的一个元素存放在序列的起始位置,直到全部待排序的数据元素排完。分析假设我们有一个待排序的数组为arr={3,5,4,1,7,2,9,8},现在我们需要对其进行升序排列,那么我们需要遍历这个数组,让每一个元素都与其他7个元素进行比较一次(这个过程称为排序)每排序一次就可以选择出一个相对最小的元素,并将其放入数组的起始位置。第一次排序的结果:1,5,4,3,7,2,9,8第二次排序的结果:1,2,3,4,5,...原创 2020-09-06 20:03:05 · 71 阅读 · 0 评论 -
线性表的链式存储结构-单链表(c语言版)
什么是链式存储?借助元素存储地址的指针表示数据元素之间的逻辑关系。什么是线性表的链式存储结构?在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。线性表(链式存储)的基本操作1.初始化2.销毁3.清空4.获取长度5.判空6.取值7.插入8.删除定义结构体//定义一个链表的结点(元素) typedef struct LNode{ int data;//数据域 struct LNod...原创 2021-02-01 18:09:01 · 509 阅读 · 0 评论 -
线性表的顺序存储结构-顺序表(c语言版)
什么是顺序存储?借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。什么是线性表的顺序存储(顺序表)?用一组地址连续的存储单元依次存储线性表的数据元素。线性表(顺序存储)的基本操作1.初始化2.销毁3.清空4.取值5.查找6.插入7.删除定义结构体typedef struct //图书信息定义{ int no; //图书编号 char name[50]; //图书名...原创 2021-01-22 06:00:31 · 362 阅读 · 0 评论 -
单链表的创建的两种方式-头插法和尾插法
如果对单链表的基本操作不熟悉可以参考:单链表的基本操作头插法每次将新生成的结点插入到最前面。所以如果我们要想插入的元素在链表中是正序的话,我们在插入元素的时候需要逆序输入。算法描述/*(3)头插法创建链表*/int CreateListHead_L(LinkList &L,int n){ for(int i=n;i>0;i--){ LinkList newNode = (LinkList)malloc(sizeof(LNode));//生成...原创 2021-02-02 19:30:13 · 1183 阅读 · 0 评论 -
循环双向链表的初始化及创建-头插法和尾插法
什么是循环双向链表?为克服单链表的这种单向性特点,在双向链表的结点有两个指针域,一个指向直接后继,另一个指向直接前驱。循环双向链表的操作1.初始化2.头插法创建链表3.尾插法创建链表4.打印链表中的所有元素5.可以把循环单链表和循环双向链表来对比一下来理解。参考文章:循环单链表基本操作循环双链表的结构这个地方要区别循环单链表,单链表中只有一个指针域,而循环双链表有两个指针域。typedef struct DuLNode{ int data; //数...原创 2021-02-03 02:22:43 · 2722 阅读 · 0 评论 -
两个有序链表合并成一个有序的单链表
将这两个有序链表合并成一个有序的单链表要求结果链表仍使用原来两个链表的存储空间,不另外占用其它的存储空间表中允许有重复数据算法描述(1)定义一个合并后的指针pc指向La表的头结点。由于要求不占用新的存储空间,所有用La的头结点当做新表的的头结点。(2)依次从La和Lb表中取出最小的的元素,然后将其链接到新表后,直到其中一个表为空。(3)最后,将La或Lb中剩余的元素链接到新表后即可。算法分析时间复杂度:O(La.length+Lb.length)空间复杂度:O(0)...原创 2021-02-08 00:44:14 · 11498 阅读 · 4 评论 -
快速排序-C语言版(带图详细)
前言哈喽,大家好,我最近在复习数据结构中的排序算法章节,今天复习到了交换排序算法中的快速排序算法,所以给大家分享一下。一、什么是快速排序?快速排序算法是在几种排序算法中效率最高的一个排序算法了,故称为快速排序,它的时间复杂度为:O(nlog~2~n),相比冒泡排序算法的O(n^2^)有很大的提升。二、算法思想1、选取一个基准元素(一般我们将待排序序列中的第一个元素选取为基准元素)2、将其他元素与基准元素进行比较,比基准元素大的放到基准元素的右边,比基准元素小的放到基准元素的右...原创 2021-09-04 23:02:36 · 15943 阅读 · 6 评论 -
冒泡排序-C语言版(带图详细)
前言相信大家在学习数据结构算法的时候经常会遇到的问题就是,老师讲解完这个算法思想,自己也听懂了,但一到自己写代码就写不出来,或者是即便自己模模糊糊的照着网上的代码自己写出来了,但是过几天就又忘了,其实这就是我们没有深刻的理解的这个算法的思想。接下来,我就结合图例给大家详细的讲解一下。<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">一、什么是冒泡排序?冒泡排序的名字是因为元...原创 2021-09-04 18:42:02 · 54309 阅读 · 9 评论 -
图的存储结构以及深度优先遍历-C语言版
前言学完图的深度优先遍历算法后,如何将我们的逻辑思维通过代码来实现呢?由于书中给的都是伪代码,所以这里大家实现了一下。一、图在计算机中如何存储呢?图跟其他数据结构类似也有两种存储结构那么就是,顺序存储结构和链式存储结构。1.顺序存储那么,现在有一个如下的图,需要采用顺序存储结构来存储到计算机中。是如何实现的呢?我们通过一维数组来存储图的顶点,通过邻接矩阵(二维数组)来存储边。 这样我们就可以通过计算机来描述这个图了。邻接矩阵:表示顶点间相邻关系的矩阵一维数组...原创 2021-09-04 17:35:47 · 1079 阅读 · 0 评论 -
矩阵的加法C语言实现(可运行)
天下文章一大抄,看了好多博客,内容都是一模一样的,很少有自己写的,代码也没有注释,难受想哭!!!这里呢,我就自己记录一下供大家参考学习#include <stdio.h> #define Maxsize 10 //三元组结构体 typedef struct { int e; //元素的...原创 2021-12-01 12:04:01 · 2160 阅读 · 0 评论