数据与算法📄️ 算法算法是解决给定问题的一种方法和步骤。对于给定问题算法不是唯一的。算法具有鲜明的客观环境属性,用不同的工具和方法解决问题,算法是不同的。利用计算机解决问题的算法可以参考人工解决该问题的算法,因为计算机是模仿人的脑力劳动而设计出来的一种工具。算法的执行效率与数据结构的优劣有很大的关系。📄️ 数据结构数据与数据的结构📄️ 线性表线性表( Linear list )是具有相同数据类型的 n ( n ≥0)个数据元素( a1, a2,..., an )的有限序列。它只有一个开始结点 a1📄️ 链表链式储存结构称之为链表,又称线性链表,分为:单链表、双向链表、循环链表。可以用任意一组储存单元来储存链表的数据元素(储存单元可以是不连续的)。除了储存每一个元素外,还必须初春指示其直接后继元素的信息。这两部分称之为节点,多个节点组成了链表。📄️ 栈栈( Stack )是限制在表的一端进行插入和删除运算的线性表,是一种特殊的线性表。📄️ 列队队列( Queue )是指允许在一端进行插入运算、而在另一端进行删除运算的线性表。允许插入运算的一端称为队尾,通常用一个称为队尾指针的指针指向队尾元素,即队尾指针总是指向最后被插入的元素。允许删除运算的一端称为队头,通常也用一个队头指针指向队头的元素。显然,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。因此,队列又称为“先进先出”( First📄️ 树树( Tree )是一种非常重要的非线性数据结构,是以分支关系定义的层次结构,很像自然界中倒挂的树,经常用来描述具有层次关系的问题。二叉树是最常用的树形结构。📄️ 查找查找( Search )是查询、修改、插入、删除等操作的基础,是数据结构中研究的重要运算。所谓查找即是按照某一个关键字值,在数据结构中找出元素的关键字值与被查元素的关键字值满足查找条件的结点。若找到,称查找成功;否则(找不到)称查找失败。📄️ 排序排序( Sort )是计算机程序设计中的一种重要运算,它是将一个无序序列整理成按关键字递增(或递减)的有序序列的处理过程。由于在计算机中对数据进行分类的算法与排序算法一致,所以排序运算应用极其广泛,至今人们已经研究出很多种排序方法,常见的有交换类排序、插入类排序和选择类排序方法。📄️ 快速排序快速排序是非常高效的排序算法,采用分而治之。📄️ 希尔排序希尔排序也称为“缩小增量排序”,它的基本原理如下:首先将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,等整个待排序列“基本有序”后,最终再对所有元素进行一次直接插入排序。📄️ 冒泡整个过程像气泡一样上冒。单向冒泡:对于给定的 n 个记录值,从此一个开始依次进行两两比较,当前大于后面的记录时,交换位置。📄️ 插入排序给定的一组数据,初识时假设第一个记录自有一个序列,其余的无序。从第二个开始,按照大小依次进行处理插入到有序序列中,直至最后一个有序的为止。📄️ 归并排序归并排序的归是递归的意思,并是将分化的半数组并在一起。📄️ 选择排序选择排序是一种简单直观的排序算法,它的基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止。📄️ 堆排序堆排序是一种树形数据结构,其每节点都有一个值。堆指的是完全的二叉树,根结点的值小于(或大于)两个子节点的值,同时,根结点的两棵树分别是一个堆。📄️ 计数排序计数排序是一种稳定的排序算法,计算排序需要一个额外的数组 CountArr ,其中第 i 个元素是待排序数组 arr 中值等于 i 的元素个数。📄️ 桶排序假设输入数据均匀分布,将数据分到有限数量的桶中,每一个桶在分别排序(使用别的排序算法或递归排序)后继续使用桶排序。
📄️ 算法算法是解决给定问题的一种方法和步骤。对于给定问题算法不是唯一的。算法具有鲜明的客观环境属性,用不同的工具和方法解决问题,算法是不同的。利用计算机解决问题的算法可以参考人工解决该问题的算法,因为计算机是模仿人的脑力劳动而设计出来的一种工具。算法的执行效率与数据结构的优劣有很大的关系。
📄️ 链表链式储存结构称之为链表,又称线性链表,分为:单链表、双向链表、循环链表。可以用任意一组储存单元来储存链表的数据元素(储存单元可以是不连续的)。除了储存每一个元素外,还必须初春指示其直接后继元素的信息。这两部分称之为节点,多个节点组成了链表。
📄️ 列队队列( Queue )是指允许在一端进行插入运算、而在另一端进行删除运算的线性表。允许插入运算的一端称为队尾,通常用一个称为队尾指针的指针指向队尾元素,即队尾指针总是指向最后被插入的元素。允许删除运算的一端称为队头,通常也用一个队头指针指向队头的元素。显然,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。因此,队列又称为“先进先出”( First
📄️ 查找查找( Search )是查询、修改、插入、删除等操作的基础,是数据结构中研究的重要运算。所谓查找即是按照某一个关键字值,在数据结构中找出元素的关键字值与被查元素的关键字值满足查找条件的结点。若找到,称查找成功;否则(找不到)称查找失败。
📄️ 排序排序( Sort )是计算机程序设计中的一种重要运算,它是将一个无序序列整理成按关键字递增(或递减)的有序序列的处理过程。由于在计算机中对数据进行分类的算法与排序算法一致,所以排序运算应用极其广泛,至今人们已经研究出很多种排序方法,常见的有交换类排序、插入类排序和选择类排序方法。
📄️ 希尔排序希尔排序也称为“缩小增量排序”,它的基本原理如下:首先将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,等整个待排序列“基本有序”后,最终再对所有元素进行一次直接插入排序。
📄️ 选择排序选择排序是一种简单直观的排序算法,它的基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止。