
---- Algorithm
云 祁
Focus BigData,专注于大数据技术领域的知识分享。
展开
-
程序员小灰算法汇总
程序员小灰算法汇总~公众号文章索引原创 2019-08-21 22:10:23 · 1755 阅读 · 0 评论 -
排序算法之一——冒泡排序
前言冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。原创 2019-08-19 22:02:15 · 1305 阅读 · 0 评论 -
排序算法之二——选择排序
前言选择排序是一种简单直观的排序方法,每次寻找排序中最小值,然后放在最末尾的位置。原创 2019-08-19 22:21:20 · 1071 阅读 · 0 评论 -
排序算法之三——插入排序
前言插入排序(Insertion sort)是一种简单直观且稳定的排序算法。介绍插入排序类似于打扑克牌,从第二张牌开始插入,小的插到大的前面,然后使其有序。再拿第三张牌来,找到合适的位置继续插入,使这三张有序。在第四张直至全部插入有序。特点时间复杂度最好情况:O(n)平均情况:O(n2)最坏情况:O(n2)空间复杂度:O(1)稳定性:稳定基本思想...原创 2019-08-19 22:35:15 · 1125 阅读 · 0 评论 -
排序算法之四——快速排序
前言快速排序(Quicksort)是对冒泡排序的一种改进。介绍快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序采用了一种分治的策略,通常称其为分治法(Divi...原创 2019-08-20 22:47:12 · 1411 阅读 · 0 评论 -
排序算法之五——归并排序
概述之前介绍过排序算法中效率很高的“快速排序”。本文将介绍另一个高效的排序算法——“归并排序”。 基本思想归并排序的主要思想是分治法。主要过程是: 将n个元素从中间切开,分成两部分。(左边可能比右边多1个数) 将步骤1分成的两部分,再分别进行递归分解。直到所有部分的元素个数都为1。 从最底层开始逐步合并两个排好序的数列。 思考考虑一个...原创 2019-08-21 22:03:15 · 1093 阅读 · 0 评论 -
排序算法之六——希尔排序
本文使用最通俗易懂的语言和插图让大家明白为什么希尔排序比直接插入排序效率高。对于这样一个数组:如果我们要插入一个元素2 ,在直接插入排序中是依次对比,比2 大的元素挨个向后移动。直接插入排序的问题就在此:如果在后面来了一个特别小的元素,需要全部移动,那么排序的效率特别低。接下来我们介绍一种更加高效率的插入排序方法:希尔排序我们摒弃那些繁琐的概念,直接通过例子来直观的学习:对于这样一个...原创 2019-09-02 22:26:58 · 2124 阅读 · 1 评论 -
算法——二分查找
前言最进在学习过程遇到二分查找,有所收获,特作如下整理,如有不妥,请指正!介绍二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。特点时间复杂度最好情况:O(1)平均情况:O( log2n\log_2{n}log2n)最坏情况:O( log2n\log_2{n...原创 2019-08-26 21:55:19 · 1367 阅读 · 0 评论