数据结构
Zero_to_zero1234
Be objective
展开
-
数据结构与算法:二分查找
算法图解:二分查找(1) 最近看到一本关于数据结构的书,甚是有趣,稍以记载,方便以后回忆! 一、二分查找 假设要在电话簿中找一个名字以K打头的人,(现在谁还用电话簿!)可以从头开始翻页,直到进入以K打头的部分。但你很可能不这样做,而是从中间开始,因为你知道以K打头的名字在电话簿中间。这是一个查找问题,在前述所有情况下,都可使用同一种算法来解决问题,这种算法就是二分查找。 二分查找是一种算法,其输入...原创 2018-12-10 17:46:45 · 264 阅读 · 0 评论 -
数据结构与算法 :冒泡排序
冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每...原创 2018-12-27 21:26:45 · 198 阅读 · 0 评论 -
数据结构与算法 :选择排序
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将...原创 2018-12-27 21:41:54 · 201 阅读 · 0 评论 -
数据结构与算法 :插入排序
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 插入排序分析 代码实现: def insert_sort(alist): # 从第二个位置,即下标为1的元素开...原创 2018-12-27 21:56:56 · 182 阅读 · 0 评论 -
数据结构与算法:快速排序
快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 步骤为: 从数列中挑出一个元素,称为"基准"(pivot), 重新排序数列,所有...原创 2018-12-27 22:03:31 · 197 阅读 · 0 评论 -
数据结构与算法:时间复杂度与大O表示法
1、概念: 我们知道,时间复杂度和“大O表示法”是我们经常会碰到的概念,他们是用来衡量算法优劣的度量,那具体怎么算的呢?来看一下 2、引例 在抛出概念之前,咱先来个例子: 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合? 第一次计算: import time start_time = time.time() # 注意是三重循环...原创 2018-12-24 16:46:35 · 1728 阅读 · 0 评论