• Madman
  • ·

Python3排序算法01 - 冒泡排序

冒泡排序是一种极其简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。由于它的简洁,冒泡排序通常被用来对于程序设计入门的学生介绍算法的概念。尽管冒泡排序是最容易了解和实现的排序算法之一,但它对于元素较多的序列排序时是很没有效率的

  • Madman
  • ·

Python3查找算法02 - 二分查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表

  • Madman
  • ·

Python3查找算法01 - 顺序查找

先介绍一种最低效的查找算法,顺序查找,它适合于存储结构为顺序存储或链接存储的线性表。无序查找是被查找数列有序无序均可,有序查找是被查找数列必须为有序数列。输入的数列如果是有序的,我们可以稍微改进一下这个算法的效率

  • Madman
  • ·

Python3数据结构06 - 队列

前面讲了栈数据结构,本文将先讲述队列,它具有先进先出(FIFO)的特性,只允许在队尾插入元素,在队头删除元素。队列的一个变种是双端队列,它具有队列和栈的性质,双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行

  • Madman
  • ·

Python3数据结构05 - 栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素

  • Madman
  • ·

Python3数据结构03 - 双向链表

前两篇介绍了顺序表和链表中的单链表,本文将介绍链表的另一种实现:双向链表,它的每个节点和两个指针域,分别指向前驱节点和后继节点。从双向链表中的任意一个节点开始,都可以很方便地访问它的前驱节点和后继节点