![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 53
新海说
通过分享,彼此学习。We live & We do.
展开
-
如何理解数据结构中的抽象数据类型?
抽象数据类型的标准格式ADT 抽象数据类型名{Data:数据元素之间逻辑关系的定义;Operation:操作1;操作2;...}什么是抽象数据类型?抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在这个模型上的一组操作。 抽象数据类型的定义仅仅取决于它的一组逻辑特性,而与它在计算机中的表示和实现无关。例如,int类型的数据表示的...原创 2018-09-04 18:49:23 · 30822 阅读 · 9 评论 -
折半插入排序——考研算法
一.基本原理1.核心思想: 折半插入排序在寻找插入位置时,不是逐个比较而是利用折半查找的原理寻找插入位置 。待排序元素越多,改进效果越明显。2.算法分析:设数组为a[0…n]。将原序列分成有序区和无序区。a[0…i-1]为有序区,a[i…n] 为无序区。(i从1开始)从无序区中取出第一个元素,即a[i],使用二分查找算法在有序区中查找要插入的位置索引j。将a[j]到a[i-1]的元...原创 2018-12-07 21:08:33 · 2779 阅读 · 0 评论 -
直接插入排序——考研算法
一.基本原理1.核心思想: 插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入 ,如此重复,直至完成序列排序。2.算法分析:从序列第一个元素开始,该元素可以认为已经被排序取出下一个元素,设为待插入元素,在已经排序的元素序列中从后向前扫描,如果该元素(已排序)大于待插入元素,将该元素移到下一位置。重复步骤2,直到找到已排序的元素小于或者等于待排序元...原创 2018-12-07 20:41:38 · 364 阅读 · 0 评论 -
考研算法——快速排序
1.什么是快速排序?快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。快速排序的关键是找到point基准点,传入数据先与point比较,然后分到数据一侧,整个排序过程可以递归...原创 2018-12-02 21:23:29 · 612 阅读 · 0 评论 -
算法时间复杂度比较
未完待续……原创 2018-12-04 21:35:11 · 956 阅读 · 0 评论 -
数据结构中的英文及算法缩写
##前言最近在复习数据结构,经常会遇到很多英文及其缩写,它们分布不同,意义不同,有时也就很难记忆,在此我将其整理出来,方便记忆和使用,也希望对大家有所帮助。第一章 算法分析ADT:O(n):T(b):f(n):第2章 线性表2.1.2Init_List:线性表的初始化(initial 初始的,initialize 初始化)Length_List:求线性表的长度(length 长...原创 2018-12-04 21:18:06 · 14111 阅读 · 4 评论 -
如何理解单链表?
单链表学习:参考《大话数据结构》涉及到单链表的基本操作有如下:int initList(linkList *); //初始化一个单链表,具有头指针,头结点,头结点->next=NULL;int createListHead(linkList *, int n); //头插法创建一个链表,链表长度为n;int createListTail(linkList *, int n); ...原创 2018-11-19 21:35:54 · 1412 阅读 · 0 评论 -
单链表指针和头结点的理解
线性表使用顺序(数组)存储时有个弊端,那就是在插入和删除时需要大量的移动数据,这显示是非常消耗时间的,所以可以采用链式存储,即有一个指针域(单链表),来记录下个结点的存储位置(地址),这样在插入和删除结点时只需要修改指针域即可,从而大量减少移动数据所消耗的时间。来看链表的定义:struct node { int data; struct node *next;};其中有两个元素,dat...原创 2018-11-19 21:22:49 · 7428 阅读 · 4 评论 -
算法复杂度比较
常见函数算法时间复杂度由小到大依次为:Ο(1)<Ο(loga^n)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<Ο(n!)<Ο(N^n)常见算法复杂度对比快速排序 nlogn 堆排序 nlogn 冒泡排序 在改良的冒泡下 最优时间复杂度为n 插入排序 最优下n 选择排序 n*n 归并 nlogn 对N个数进行排序,在各自最优条件下以下算法复杂度最...原创 2018-09-04 19:15:50 · 2719 阅读 · 0 评论 -
二叉树前序、中序、后序遍历相互求法
今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。总结一下三种遍历方式的特征:前序:开头是头结点中序:根据头结点划分左右子树的元素后序:末尾是头结点首先,我们看看前序、中序、后序遍历的特性:前序遍历:1.访问根节点2.前序遍历左子树3.前序遍历右...转载 2018-12-05 21:26:42 · 181 阅读 · 0 评论