
数据结构
blank
HELLO WORLD!
KEEP CODING!
展开
-
归并排序
算法介绍: 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 基本思想: 基本思路就是将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。 可以将A,B组各自再分成二组。依此类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了...原创 2020-03-24 15:23:35 · 79 阅读 · 0 评论 -
快速排序
算法介绍: 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法。 分治法基本思想: 先从数列中取出一个数作为基准数。 分区过程将比这个数大的数全放到它的右边,小于或者等于它的数全放到左边。(升序) 再对左右区间重复第二步,直到各区间只有一个数 C++代码实现: #include <iostream> using namesp...原创 2020-03-24 13:57:41 · 81 阅读 · 0 评论 -
插入排序
插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,算法适用于少量数据的排序,时间复杂度O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好原创 2020-03-12 16:54:10 · 89 阅读 · 0 评论 -
选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。原创 2020-03-12 16:00:46 · 138 阅读 · 0 评论 -
二叉树
一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。原创 2020-03-03 13:48:41 · 85 阅读 · 0 评论 -
循环链表
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。原创 2020-03-01 16:22:30 · 207 阅读 · 0 评论 -
移除链表元素
删除链表中等于给定值 val 的所有节点。原创 2020-03-01 13:11:52 · 100 阅读 · 0 评论 -
从尾到头打印链表
输入一个链表的头节点,从尾到头反过来打印出每个节点的值。链表节点定义如下原创 2020-02-29 20:19:21 · 98 阅读 · 0 评论 -
反转链表(迭代和递归解法)
反转一个单链表(迭代和递归解法)原创 2020-02-29 19:59:04 · 308 阅读 · 0 评论 -
单向链表的实现
链表概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 单链表 线性表的链式存储结构中,每个节点中只包含一个指针域,这样的链表叫单链表。 通过每个节点的指针域将线性表的数据元素按其逻辑次序链接在一起。 概念解释: 表头结点:链表中的第一个结点,包含指向第一个数据元素的指针以及自身的一些信息 数据结点:链表中代表数据元素的结点,包含指...原创 2020-02-29 16:51:30 · 227 阅读 · 0 评论 -
数据结构
1.线性表 线性表是n个具有相同特征的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理存储时,通常以数组和链式结构的形式存储。 2.顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增...原创 2019-09-28 17:33:32 · 120 阅读 · 0 评论 -
数据结构---算法效率
1.什么是数据结构? 数据结构(Data Structure)是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 2.什么是算法? 算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。 3.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间...原创 2019-05-13 22:31:35 · 573 阅读 · 0 评论