随笔分类 - 算法
摘要:[toc] 一、定义 基数排序是桶排序的一个方案。基数排序有时候也叫卡片排序。既然基数是桶排序的一种实现,我们需要先稍微了解下桶排序。 桶排序 概念上,假设当出现一个数组,$A_1,A_2,A_3,…,A_N$必须是小于$M$的正整数组成。那么对这个数组进行桶排序: 选择一个大小为M的cou
阅读全文
摘要:[toc] 一、定义 前言 顾名思义,快速排序是实践中的一种快速排序算法,在 C++或对Java基本类型的排序中特别有用 。它的平均运行时间是$O(NlogN)$。该算法之所以特别快,主要是由于非常精炼和高度优化的内部循环。它的最坏性能$O(N^2)$。通过将 堆排序 和快速排序的结合,由于堆排
阅读全文
摘要:[toc] 一、定义 基本思想 归并排序,其基本思想是 合并2个已经排序的表 ,因为2个表 已经排序 ,所以合并时,将数据放到第三个表中,则该算法可以通过对输入数据一样排序来完成。 基本的算法是取2个输入数组A和B,一个输出数组C。 3个计数器,Actr,Bctr,Cctr,他们初始置于对应数组
阅读全文
摘要:[toc] 一、定义 1.1 堆 此处的堆,指数据结构中的堆。而不是内存中的那种内存堆,内存堆是基于数据结构的一种实现。堆的数据结构是一棵完全二叉树,它有如下特点:(具体参考下文链接) 堆是一棵完全二叉树 它总是最小值在根节点(或最大值在根节点) 它上一层比下一层小(大) 必定有快速删除根节点,
阅读全文

浙公网安备 33010602011771号