摘要:
排序算法简介 1. 冒泡排序 2. 选择排序 3. 插入排序 4. 希尔排序 5. 快速排序 6. 归并排序 排序算法简介 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持其相对 阅读全文
摘要:
1. 堆栈(Stack) 2. 队列(Queue) 单向队列 双向队列 优先队列 1. 堆栈(Stack) 介绍 堆栈(stack)也叫“栈”,是一种后进先出(LIFO, Last In First Out)的线性表,它的特点在于只允许在堆栈的一端(top,栈顶)进行插入数据(push)和弹出数据( 阅读全文
摘要:
1. 链表 2. 单向链表 3. 双向链表 4. 单向循环链表 1. 链表 为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表的定义 链表(Linke 阅读全文
摘要:
1. 线性表与顺序表 介绍 2. 顺序表的形式 3. 顺序表的结构与实现 4. 顺序表的操作 5. Python 中的顺序表 1. 线性表与顺序表 介绍 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化( 阅读全文
摘要:
1. 引入:算法的提出 2. 算法的效率衡量:时间复杂度 3. 常见的时间复杂度 4. Python 内置类型性能分析 5. 数据结构 1. 引入:算法的提出 先来看一道题: 如果 a+b+c=1000,且 a2+b2=c2(a、b、c 为自然数),如何求出所有 a、b、c 可能的组合? 第一次尝试 阅读全文
摘要:
1. 协程介绍 2. 协程-生成器版 3. 协程-greenlet 版 4. 协程-gevent 版 1. 协程介绍 什么是协程? 协程,又称微线程,纤程。英文为 Coroutine。 协程其实可以认为是比线程更小的执行单元。 为啥说他是一个执行单元,因为它自带 CPU 上下文。这样只要在合适的时机 阅读全文
摘要:
1. TCP 介绍 2. TCP Socket 代码示例 1. TCP 介绍 详见《TCP:与 UDP 区别、三次握手、四次挥手、Socket 编程》。 TCP 与 UDP 在通信模型上的区别 UDP 通信模型 UDP 通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活 阅读全文
摘要:
1. Socket 简介 2. UDP 介绍与代码示例 1. Socket 简介 网络编程,是指让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。 本地的进程间通信(IPC) 例如有:队列、同步(互斥锁、条件变量等)等,这些通信方式都是一台机器上不同进程之间的通信方式。 网络中的进程间通信 阅读全文
摘要:
1. Python 多线程介绍 2. 创建多线程 - threading 3. 创建多线程 - Thread 子类 4. 同步 5. 死锁 6. 生产者与消费者模式 7. GIL(全局解释器锁) 1. Python 多线程介绍 1.1 什么是 Python 的多线程? Python 的多线程是指一个 阅读全文
摘要:
1. 多进程简介 1.1 进程的概念 1.2 进程的特征 1.3 进程的上下文切换 1.4 进程的状态 1.5 进程控制块 1.6 进程的控制 2. 进程的创建-multiprocessing.Process 3. 进程的创建-Process子类 4. 进程池-Pool 5. 进程间通信-Queue 阅读全文