排序和搜索算法
青柠17
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(Python)(六)—— 排序算法(5)快速排序
快速排序 快速排序(Quicksort),又称划分交换排序(partition-exchange sort),将要排序的数列分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 希尔排序算法的具体运作如下: 记录数列第一个元素为中间值,设立两个游标,分别位于数列始末。...原创 2019-11-25 16:12:06 · 84 阅读 · 0 评论 -
数据结构与算法(Python)(六)—— 排序算法(4)希尔排序
希尔排序 希尔排序(Shell Sort)是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法,该方法因DL.Shell于1959年提出而得名。 希尔排序是把数列按一定的下标增量分组,对每组使用直接插入排序算法排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 希尔排序算法的具体运作如下: ...原创 2019-11-25 10:47:54 · 107 阅读 · 0 评论 -
数据结构与算法(Python)(六)—— 排序算法(3)插入排序
插入排序 插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是构建已排序序列,将未排序元素找到已排序序列的相应位置并插入。插入排序在实现上,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 插入排序算法的具体运作如下: 将第一个元素视为已排序序列,比较第一个元素与第二个元素,若第二个元素小于第一个元素,则交换。 将前两个元素视为已排序序列,比较第三个元素与...原创 2019-11-24 15:12:04 · 88 阅读 · 0 评论 -
数据结构与算法(Python)(六)—— 排序算法(2)选择排序
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。将数列分为未排序序列和已排序序列两部分,在未排序序列中找到最小(大)元素,存放到数列的起始(末尾)位置作为已排序序列的第一个元素,然后,再从剩余未排序序列中继续寻找最小(大)元素,然后放到已排序序列的末尾(起始)位置。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位...原创 2019-11-24 14:16:15 · 235 阅读 · 0 评论 -
数据结构与算法(Python)(六)—— 排序算法(1)冒泡排序
排序算法 排序算法是一种能将一串数据依照特定顺序进行排列的一种算法。 一、排序算法的稳定性 稳定排序算法会让原本有相等键值的纪录维持相对次序,也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。 例如,将以下的数对将要以他们的第一个数字来排序。 (4, 1) (3, 1) (3, 7) (5, 6) 在这个状况下...原创 2019-11-24 13:15:37 · 148 阅读 · 0 评论