自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 动画:一篇文章快速学会基数排序

内容介绍基数排序简介前面学过计数排序和桶排序都是非基于比较的排序算法,它们的优势在于对一定范围内的数据排序时可以突破基于比较排序算法的时间复杂度O(nlogn)。基数排序是一种非比较型整数排序算法,基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献。基数排序的思想基数排序(Radix Sort)是计数排序的扩展,它的基本思想...

2020-04-01 18:24:31 271

原创 动画:一篇文章快速学会桶排序

内容介绍桶排序简介前面学过计数排序,计数排序是一个非基于比较的排序算法,它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)。所谓桶就是存放多个数据的容器,桶排序也是非基于比较的排序算法,将待排序数据按照一定的规则存放到对应的桶中,再进行排序与合并。桶排序可以对一定范围内的数据包括小数进行排序。桶排序可以突破基于比较排序算法的时间复杂度O(nlogn)。桶排序的思想将待排序...

2020-04-01 18:23:14 543 1

原创 动画:一篇文章快速学会计数排序

内容介绍计数排序简介我们知道目前排序速度最快的是时间复杂度为O(nlogn)的排序算法,如快速排序、归并排序和堆排序。其中O(logn)是利用了分治思想进行数据二分远距离比较和交换元素的位置。之前的算法都是基于元素比较的,有没有一种算法,它的时间复杂度小于O(nlogn)呢?这样的算法是存在的。计数排序就是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward提出。...

2020-04-01 18:22:04 269

原创 动画:一篇文章快速学会堆排序

内容介绍堆排序简介前面我们已经介绍了堆结构,也能够构造一个堆结构。如果对堆结构不了解的同学可以看一下之前的文章《动画学堆结构,一篇一看就懂的堆结构文章》。我们稍微回顾一下,根节点最大的堆叫做最大堆或大根堆,如下图:获取最大堆的最大值,其实就是获取堆顶的元素。对于堆这种数据结构通常是将堆顶的元素和堆中最后一个元素换位置,最大值就到了最后一个位置,然后从堆中排除这个最大的元素,当最后一个元素...

2020-04-01 18:20:53 397

原创 动画:一篇文章快速学会数据结构-堆

内容介绍树结构简介树结构是计算机中常用的一种数据结构。我们先来看一下生活中的树:计算机中的树和生活中的树是类似的,只不过是倒着的,树根在上,树叶在下。树上的每个组成元素都是一个节点,树根称为根节点,树枝称为分支节点,树叶称为叶子节点,如下图所示:二叉树结构简介二叉树是:每个节点最多只能有两个子节点树。二叉树的子节点分为左节点和右节点,如下图:满二叉树:如果该二叉树的所有叶子节点...

2020-04-01 18:18:51 243

原创 动画:一篇文章快速学会快速排序

内容介绍快速排序简介快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。快速排序算法被列为20世纪十大算法之一,这足以说明的他的作用和重要性。快速排序是程序员必须掌握的一种排序算法。希尔排序相当于直接插入排序的升级,它们同属于插入排序类,快速排序其实就是我们前面认为最慢的冒泡排序的升级,它们都属于交换排序类。它也是通过不断比较和移动...

2020-04-01 18:17:35 762

原创 动画:一篇文章快速学会归并排序

内容介绍归并排序简介我们以前读书时,学校会举行运动会,运动会上有很多比赛项目,比如跳远比赛。当参加跳远比赛人数比较多时,通常会将所有参赛选手分成多组,每组的同学比赛,并按成绩进行排名,最后将所有组的学生成绩汇总得到所有学生的排名。上面案例中的所有学生跳远排名就是归并排序的思想。归并排序是一个典型的基于分治的算法。归并一词的中文含义就是合并、并入的意思,归并排序分成两个步骤:1.拆分,2.合...

2020-04-01 18:16:45 287

原创 动画:一篇文章快速学会希尔排序

内容介绍希尔排序简介冒泡排序在1956年就已经被研究。但是排序速度是比较慢的,冒泡排序的时间复杂度是O(n2),然而在后面的很长的时间里,尽管人们发明各种排序算法(比如前面选择排序和插入排序),但时间复杂度都是0(n2),时间复杂度似乎没法超越0(n2)。此时,计算机学术界充斥着“排序算法不可能突破O(n2)的声音”。终于有一天,当一位科学家发布超越了0(n2)新排序算法后,紧接着就出现了好...

2020-04-01 18:15:15 772 3

原创 动画:一篇文章快速学会插入排序

内容介绍插入排序的思想插入排序是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。我们玩扑克牌时整理扑克牌就是典型的插入排序。如下动画:插入排序正是如此,一边摸牌,一边理牌,将摸到的牌放到已经整理好的牌中。假如我们手上已经有6,7,9,10,手上摸到的是8。处理方式就是先拿8和10比较,发现8小于10,再拿8和前面的9比较,发现8也是小于9,于是再和前面的7...

2020-04-01 18:14:02 633

原创 动画:一篇文章快速学会选择排序

内容介绍前言选择排序的思想第一次从待排序的数据中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序动画演示选择排序分析一般没有特殊要求排序算法都是升序排序,小的在前,大的在后。数组由{6, 5, 4, 1, 3, 2}这6个无序元素组成。选...

2020-03-07 20:53:18 131

原创 动画:一篇文章快速学会冒泡排序

内容介绍前言冒泡排序原理冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻的数据,大的往后放。大家一定看过水中的气泡,小气泡一点一点向上浮动变成大气泡。一般没有特殊要求排序算法都是升序排序,小的在前,大的在后。冒泡排序这个算法的名字由来是因为元素像水中的气泡冒泡一样,小的元素会经过交换慢慢“浮”到数列的一端。我们来看冒泡排序...

2020-03-07 20:51:45 494

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除