首页 算法与数据结构简介
文章
取消

算法与数据结构简介

算法

  1. 插入排序(直接插入排序、希尔排序)

  2. 交换排序(冒泡排序、快速排序)

  3. 选择排序(直接选择排序、堆排序)

  4. 归并排序

  5. 分配排序(基数排序)

  • 所需辅助空间最多:归并排序

  • 所需辅助空间最少:堆排序

  • 平均速度最快:快速排序

  • 不稳定:快速排序,希尔排序,堆排序。

数据结构

线性结构

数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构; 线性结构包括:数组,链表,队列,栈;

  1. 数组使用场景:频繁查询,很少增加和删除的情况。

    特点:数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,查询速度很快,然而插入和删除时,需要对元素移动空间,比较慢。

  2. 链表使用场景:少查询,需要频繁的插入或删除情况

    特点:元素可以不连续内存中,是以索引将数据联系起来的,当查询元素的时候需要从头开始查询,所以效率比较低,然而添加和删除的只需要修改索引就可以了

  3. 队列使用场景:多线程阻塞队列管理非常有用

    特点:先进先出

  4. 栈使用场景:实现递归以及表示式

    特点:先进后出,类似于箱子

::: tip 数组与链表的区别

1
2
3
4
5
6
7
8
9
- 数组连续,链表不连续(从数据存储形式来说)

- 数组内存静态分配,链表动态分配

- 数组查询复杂度0(1),链表查询复杂度O(n)

- 数组添加或删除,复杂度o(n),链表添加删除,复杂度O(1)

- 数组从栈中分配内存。链表从堆中分配内存。 :::

非线性结构

非线性结构包括:树,图,表;

本文由作者按照 CC BY 4.0 进行授权

服务器简介

git版本控制

载入天数...载入时分秒...