考研
小陈没烦恼
现在的努力只为将来遇见更好的你!
展开
-
插入排序Java版本
插入排序算法思想插入排序是把第一个元素看作是有序的,将剩下的元素看作是未排序的。然后遍历未排序的序列将每个每个元素分别插入到已排序序列的合适位置。分析假设我们有一个待排序的数组为arr={3,5,4,1,7,2,9,8},现在我们需要对其进行升序排列,那么我们需要通过for循环遍历未排序序列,让每一个未排序元素都与已排序元素进行比较一遍,然后将其将其插入插入到合适的位置。第一次插入的结果:3,5,4,1,7,2,9,8第二次插入的结果:3,4,5,1,7,2,9,8第三次插入...原创 2020-09-11 23:43:33 · 66 阅读 · 0 评论 -
简单选择排序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 · 76 阅读 · 0 评论 -
线性表的链式存储结构-单链表(c语言版)
什么是链式存储?借助元素存储地址的指针表示数据元素之间的逻辑关系。什么是线性表的链式存储结构?在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。线性表(链式存储)的基本操作1.初始化2.销毁3.清空4.获取长度5.判空6.取值7.插入8.删除定义结构体//定义一个链表的结点(元素) typedef struct LNode{ int data;//数据域 struct LNod...原创 2021-02-01 18:09:01 · 535 阅读 · 0 评论 -
线性表的顺序存储结构-顺序表(c语言版)
什么是顺序存储?借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。什么是线性表的顺序存储(顺序表)?用一组地址连续的存储单元依次存储线性表的数据元素。线性表(顺序存储)的基本操作1.初始化2.销毁3.清空4.取值5.查找6.插入7.删除定义结构体typedef struct //图书信息定义{ int no; //图书编号 char name[50]; //图书名...原创 2021-01-22 06:00:31 · 400 阅读 · 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 · 1203 阅读 · 0 评论 -
循环双向链表的初始化及创建-头插法和尾插法
什么是循环双向链表?为克服单链表的这种单向性特点,在双向链表的结点有两个指针域,一个指向直接后继,另一个指向直接前驱。循环双向链表的操作1.初始化2.头插法创建链表3.尾插法创建链表4.打印链表中的所有元素5.可以把循环单链表和循环双向链表来对比一下来理解。参考文章:循环单链表基本操作循环双链表的结构这个地方要区别循环单链表,单链表中只有一个指针域,而循环双链表有两个指针域。typedef struct DuLNode{ int data; //数...原创 2021-02-03 02:22:43 · 2820 阅读 · 0 评论 -
两个有序链表合并成一个有序的单链表
将这两个有序链表合并成一个有序的单链表要求结果链表仍使用原来两个链表的存储空间,不另外占用其它的存储空间表中允许有重复数据算法描述(1)定义一个合并后的指针pc指向La表的头结点。由于要求不占用新的存储空间,所有用La的头结点当做新表的的头结点。(2)依次从La和Lb表中取出最小的的元素,然后将其链接到新表后,直到其中一个表为空。(3)最后,将La或Lb中剩余的元素链接到新表后即可。算法分析时间复杂度:O(La.length+Lb.length)空间复杂度:O(0)...原创 2021-02-08 00:44:14 · 11895 阅读 · 4 评论 -
栈的顺序存储结构-顺序栈的基本操作
栈的的定义只能在表的一端(栈顶)进行插入和删除操作的线性表。栈的基本操作顺序栈的表示/*定义顺序栈*/typedef struct { int *base; //用于栈存储的基地址 int *top; //指向该基地址的栈顶指针 int stackSize; //栈的大小 }SqStack;顺序栈的初始化/*初始化*/int InitStack_S(SqStack &S){ S.base = (int ...原创 2021-02-10 18:03:31 · 361 阅读 · 0 评论 -
栈的链式存储结构-链栈的基本操作
栈的基本操作链栈的表示/*定义链栈*/typedef struct StackNode{ int data; struct StackNode *next;}StackNode,*LinkStack;链栈的初始化/*链栈的初始化*/int InitStack(LinkStack &S){ S = NULL; return 0;}进栈操作/*链栈进栈*/ int Push(LinkStack &...原创 2021-02-23 14:18:32 · 1989 阅读 · 2 评论 -
队列的顺序存储结构-顺序队列
队列的定义队列是一种先进先出的线性表,它只允许在表的一段进行插入,而在另一端进行删除。在队列中允许插入的一端叫做队尾,允许删除的一端叫做对头。队列的基本操作(1)队列的初始化(2)销毁队列(3)清空队列(4)判空(5)取队列长度(6)取队头元素(7)入队(8)出队定义顺序队列结构typedef struct { int *base; //基地址用于存储队列元素 int front; //头指针 int rear; //尾指针...原创 2021-02-24 09:46:09 · 698 阅读 · 0 评论 -
链表,栈,队列的存储结构定义
线性表线性表的顺序存储结构/*线性表的顺序存储结构 --顺序表*/ typedef struct { int *data; //存储空间的基地址 类似于一维数组a[n] int length; //链表的长度 }SqList;线性表的链式存储结构/*线性表的链式存储结构 --单链表*/ typedef struct LNode{ int data; //数据域 struct LNode *next; //指针域 }LN...原创 2021-03-01 14:45:12 · 139 阅读 · 0 评论 -
交换排序之冒泡排序和快速排序
冒泡排序和快速排序都是通过两两关键字之间进行比较大小然后进行交换位置来进行的所以这里放在一起来学习之前博客里有写过,需要详细的可以在博客里搜索一下这里直接上代码了#include <stdio.h> #define N 20/***打印数组 */void PrintArrary(char desc[],int a[],int len){ puts(desc); for(int i = 0;i<len;i++){ print...原创 2021-11-22 13:37:56 · 150 阅读 · 0 评论 -
插入排序之直接插入排序和希尔排序
直接插入排序和希尔排序都属于插入排序,所以这里把两种算法放到一起来比较一下。希尔排序是在直接插入排序的基础上进行改进的,所以算法很相近。前面的文章有单独讲解两种算法的还有图解,这里就不过多的赘述。#include <stdio.h> #define N 20/***打印数组 */void PrintArrary(char desc[],int a[],int len){ puts(desc); for(int i = 0;i<len;i++...原创 2021-11-20 16:13:06 · 212 阅读 · 0 评论 -
奇偶排序c语言实现
代码实现#include<stdio.h> void PrintArrary(char desc[],int a[],int len){ puts(desc); for(int i = 0;i<len;i++){ printf("%d ",a[i]); } printf("\n");}int odd_even_sort(int a[],int len){ int flag = 0,temp; //flag用来标识 序列是否有序 初始状态是无序的 while(原创 2021-12-14 22:43:29 · 988 阅读 · 0 评论 -
统计矩阵中元素既是所在行的最小值也是所在列的最小值
编写一个函数,对给定m*n的矩阵A,统计这个矩阵中具有以下特征元素,该元素既是所在行的最小值,也是所在列的最小值,打印出这些特殊元素以及坐标算法思想第一步 确定每一行元素的最小值 记录下最小值以及坐标第二步 根据第一步确定该行元素的最小值,在该行最小元素的所在列查找 该列的最小值 并记录下来该列的最小第三步 比较 一 二 步记录的最小值,如果相同则打印该元素 及其 坐标代码实现#include<stdio.h> #define M 3#define N 4int old_e.原创 2021-12-10 23:00:20 · 910 阅读 · 0 评论 -
三元组矩阵的加法C语言实现(可运行)
稀疏矩阵A和B都是三元组原创 2021-12-01 00:40:51 · 2348 阅读 · 1 评论