2019独角兽企业重金招聘Python工程师标准>>>

数组 (Array)

  在程序设计中,为了处理方便, 把具有相同类型的若干 变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为 数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、 指针数组、结构数组等各种类别。

栈 (Stack)

  是只能在某一端插入和删除的特殊 线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

队列 (Queue)

  一种特殊的 线性表,它只允许在表的 前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

链表 (Linked List)

  是一种物理存储单元上非连续、非顺序的存储结构,数据元素的 逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时 动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

树 (Tree)

  是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:   (1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。 (2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。   (3)K中各结点,对关系N来说可以有m个后继(m>=0)。

图 (Graph)

  图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以 区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

堆 (Heap)

  在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

散列表 (Hash)

  若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为 散列表。

编辑本段数据结构的排序算法

稳定的排序算法

  冒泡排序(bubble sort)   鸡尾酒排序 (Cocktail sort, 双向的冒泡排序)   插入排序 (insertion sort)   桶排序 (bucket sort)   计数排序 (counting sort)   合并排序 (merge sort)   原地合并排序   二叉排序树排序 (Binary tree sort)   鸽巢排序 (Pigeonhole sort)   基数排序 (radix sort)   Gnome 排序   图书馆排序

不稳定排序算法

  选择排序 (selection sort)   希尔排序 (shell sort)   组合排序   堆排序 (heapsort)   平滑排序   快速排序 (quicksort)   内省排序 (Introsort)   Patience sorting

不实用的排序算法

  Bogo排序   Stupid sort   珠排序(Bead sort)   Pancake sorting

转载于:https://my.oschina.net/u/573470/blog/78272

常用数据结构以及数据结构的排序算法相关推荐

  1. 《数据结构》课程设计-排序算法可视化

    <数据结构>课程设计-js实现排序算法可视化 先上效果图: 一.数据可视化 1.什么是数据可视化 数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视 ...

  2. 数据结构学习笔记——基数排序 | 排序算法总结

    目录 一.基数排序排序思想 二.基数排序算法分析 三.排序算法总结 (一)分类 (二)比较 (三)详细分析 一.基数排序排序思想 基数排序与前面的排序算法不一样,它不基于比较和移动元素来进行排序,而是 ...

  3. 数据结构十大经典排序算法总结

    算法概述 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次数,由于其时间复杂度不能突破O ( n log ⁡ n ) O(n \log n)O(nlogn),因此也 ...

  4. Python数据结构常见的八大排序算法(详细整理)

    前言 八大排序,三大查找是<数据结构>当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法. 常见的八大排序算法,他们之间关系如下: 排序算法.png 他们的性能比较: 下 ...

  5. 算法设计和数据结构学习_2(常见排序算法思想)

    一般约定我们是按照从小到大的顺序排序. 按照向量的形式来参考排序中数组元素的相对位置,行向量中最左边为数组的第一个元素,且称为前面.列向量中最上面的元素为数组的第一个元素,也是称为前边. 对常见的排序 ...

  6. python结构排序_Python数据结构(七)排序算法 上

    Python数据结构(七)排序算法 上 上回: 本文的重点不是代码,而是带着大家分析每一个排序算法背后的思想以及使用到的数据结构.很多时候不是我们想不出算法该如何去写,而是题目并没有指定特定的数据结构 ...

  7. 数据结构实验:内部排序算法的性能分析

    文章目录 前言 一.问题描述 二.问题分析 三.实验结果及分析 (1)实验数据描述 (2)实验结果 (3)性能分析 四.源代码 前言 记录下本学期的数据结构实验 本实验主要集中于比较几种内部排序算法 ...

  8. 《数据结构》之内部排序算法比较

    前言 各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间.试通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受. 基本要求: (1) 从以下常用的内部排 ...

  9. 数据结构Java版之排序算法(二)

    排序按时间复杂度和空间复杂度可分为 低级排序 和 高级排序 算法两种.下面将对排序算法进行讲解,以及样例的展示. 低级排序:冒泡排序.选择排序.插入排序. 冒泡排序: 核心思想,小的数往前移.假设最小 ...

  10. 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对

    本次笔记内容: 9.1.1 概述 9.1.2 冒泡排序 9.1.3 插入排序 9.1.4 时间复杂度下界 文章目录 排序算法前提条件 冒泡排序 插入排序 时间复杂度下界 逆序对(inversion) ...

最新文章

  1. java shiro原理_Springboot shiro认证授权实现原理及实例
  2. ARM uboot Legacy uImage 和 fit img (Flattened uImage Tree)原理介
  3. iis部署,访问报404.2错
  4. Linux shell脚本基础学习详细介绍(完整版)2
  5. arraylist如何检测某一元素是否为空_我们应该如何理解Java集合框架的关键知识点?...
  6. 软件工程导论团队项目
  7. mysql php 封装类_PHP递归实现层级树状展开的方法
  8. iOS 实现语音播报
  9. ffmpeg主要数据结构及其之间的关系
  10. python读取163邮件内容_python模拟登陆163邮箱并下载邮件内容(第三版代码片段)
  11. 服务器销售术语,服务器术语大全
  12. unit怎么发音_“unit”怎么读?
  13. Latex公式编号: 多行公式多编号,多行公式单编号
  14. python爬贴吧回复_Python爬虫实践,获取百度贴吧内容
  15. 逐飞K66核心板+逐飞DAP下载器调试方式及接线(SWD)
  16. mysql非结构化查询_Mysql(2.3) 简单查询(SELECT)、子查询
  17. 微软提出基于知识图谱的深度神经网络DKN用于新闻推荐
  18. HDOJ 2112 HDU Today (最短路 Dijkstra SPFA)
  19. hBuilder调试
  20. EPICS记录参考4--所有输入记录都有的字段和所有输出记录都有的字段

热门文章

  1. 20191011:冒泡排序的改良版--Shaker排序
  2. linux可以修改日期格式吗,如何在Linux中使用date命令修改日期时间
  3. 心语收集11:我们可以经得起心脏的千疮百孔,可以接受感情的支离破碎,却不愿喝下忘情水,忘记那曾经爱过的人。...
  4. 【转】VB动态拖曳ListBox Item位置
  5. 基础数据结构和算法概念
  6. 中国人寿如何基于容器搭建金融PaaS云平台
  7. 编程开发之--单例模式(2)
  8. WAF和IPS的区别
  9. PHP一阶段 html+css+js 练习题汇总
  10. vue.js的学习中的简单案例