- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 并查集和Union-Find算法及其改进
并查集定义 并查集(Union-Find Sets)也叫不相交集合(Disjoint Sets),是一种用于维护若干个不相交元素所构成的集合的一种树型数据结构。并查集常用来处理一些不相交元素的合并与查询问题,在使用中常常用森林来表示。 主要操作 一个并查集数据结构维护了一个不相交动态集的集合。我们用一个代表(根节点)来标识每个集合,它是这个集合的某个成...
2017-10-19 16:53:13 945
原创 Quick Sort(快速排序)
目录算法思想实现步骤源码C++实现递归版本C++非递归版本 Python实现Go实现时间复杂度性能特点稳定性算法思想 通过快速排序将要排序的数据分为独立的两部分,其中一部分的数据比另外一部分的数据都要小,然后再按照此方法对这两部分数据分别再进行快速排序,整个过程可以递归进行,以此达到整个序列都有序。快速排序和归并排序是互补的:归并排序...
2017-10-08 23:04:05 1269
原创 Merge Sort(归并排序)
归并排序是建立在归并操作(将若干(通常为两个)有序的序列合成为一个更大的有序序列)上的一种排序算法,是分治法的典型应用。算法思想 用分治法的思想,将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有序。常见的归并排序将两个有序的子序列合成一个更大的序列,称为二路归并排序。实现步骤 以自顶向下的二路归并...
2017-10-04 00:35:57 1764
原创 Binary Selection Sort(二元选择排序)
算法思想 二元选择排序是对简单选择排序的改进,简单选择排序对序列每一次遍历只找出一个元素,而二元选择排序在每一次遍历中都会找出序列两端的元素(最大和最小),两端同时向中间逼近。这样理论上遍历的次数就减少了一半,加快了排序速度。实现步骤 以从小到大排列为例:1.遍历序列,找出最小元素和最大元素2.将最小元素与无序部分第一个元素交换,最大元素与无...
2017-10-03 12:07:37 765
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人