数据结构
Weiami
以梦为马,以汗为泉,不忘初心,不负韶华。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构_排序算法(交换排序)
排序算法交换排序基本思想:两两比较待排序记录的关键字,一旦发现两个记录不满足次序要求则进行交换,直到整个序列满足要求为止。分类:根据交换思想的不同,可以将交换排序分为:冒泡排序和快速排序。1.冒泡排序冒泡排序是一种最简单的交换排序算法,通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上“漂浮”,或者使关键字大的记录如石块一样逐渐向下“坠落”分析:时间复杂度O(n^2),空间复杂度O(1),算法稳定。#include <stdio.h>原创 2020-12-31 16:32:11 · 544 阅读 · 0 评论 -
数据结构_排序算法(插入排序)
排序算法插入排序基本思想:插入排序每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置,直到所有待排序记录全部插入为止。举例:打扑克牌在抓牌时要保证抓过的牌有序排列,则每抓一张牌就要插入到合适的位置,直到抓完牌为止,即可得到一个有序序列。分类:可以选择不同的方法在已排好序的记录中寻找插入位置。根据查找方法的不同,可将插入排序分为:直接插入排序、折半查找排序和希尔排序。1.直接插入排序直接插入排序是一种简单的排序算法,基本操作是将一条记录插入到已经排好序的有序表中分析原创 2020-12-27 22:03:28 · 682 阅读 · 0 评论 -
数据结构_顺序表与链表的比较
顺序表与链表从逻辑结构、存储结构、基本操作三个方面来对比顺序表与链表。根据顺序表与链表的优缺点,分析其应用场景逻辑结构顺序表和链表都是线性结构,都属于线性表存储结构顺序表(顺序存储):随机存取,存储密度高,需要大片连续的存储空间,改变容量不方便链表(链式存储):离散的存储空间,改变容量方便,不可随机存取,存储密度低基本操作创建:顺序表创建时必须预先分配大片的连续存储空间链表开始创建时只需为头节点动态分配存储空间销毁:顺序表销毁时需修改表的长度,使Length=0;原创 2020-08-23 20:21:13 · 543 阅读 · 0 评论 -
数据结构_线性表的链式存储
链表链表是链式存储方式实现的线性表逻辑上相邻的数据元素物理上不一定相邻单链表单链表的节点有一个数据域和一个指针域,数据域存放数据,指针域用来指向下一个节点单链表基本操作的实现(C语言)#include <stdio.h>#include <stdlib.h> //单链表数据类型 typedef struct LNode{ //节点 int data; //数据域 struct LNode *next; //指针域 }LNode, *LinkLis原创 2020-08-22 21:06:08 · 286 阅读 · 0 评论 -
数据结构_线性表的顺序存储
顺序表1.以静态分配为例,完成基本操作:#include <stdio.h>#define MaxSize 10//顺序表的结构体 struct SeqList{ int data[MaxSize]; int length;};//顺序表的初始化 void InitSeqList(struct SeqList *p) { p->length = 0;}void AddSeqList(struct SeqList *q) { int i, n = 4原创 2020-08-17 23:12:11 · 332 阅读 · 0 评论 -
数据结构_线性表
线性表线性表的定义定义:线性表是由类型相同的数据元素组成的有限序列。注意三个关键字(相同类型、有限、序列)线性表的特点特点:线性表一定存在唯一的第一个元素线性表一定存在唯一的最后一个元素除第一个元素外,其他元素都有直接前趋除最后一个元素,其他元素都有直接后继线性表的每一个元素都具有相同的数据类型线性表的每一个元素都有位置和值,位置是元素与其他元素的关系,值是元素的具体内容线性表中元素的位置和值可以有关系,也可以没关系线性表的基本操作基本操作:线性表的初始化,数据元素的插入原创 2020-08-17 23:04:22 · 200 阅读 · 0 评论
分享