排序_堆排序

排序_堆排序

bingliaolong Algorithm 5年前 11 0

二叉堆 特性 最大堆的堆顶是整个堆中的最大元素 最小堆的堆顶是整个堆中的最小元素 每次删除旧堆顶,调整后的新堆顶都是大小仅次于旧堆顶的节点。 只要反复删除堆顶,反复调整二叉堆,所得到的集合就会成为一个有序集合。 简述 堆排序算法步骤: 把无序数组构建成二叉堆。需要从小到大排序,就...

排序_快速排序

排序_快速排序

bingliaolong Algorithm 5年前 24 0

简述 快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移到数列一边,比它小的元素移到数列的另一边,从而把数列拆解成两个部分。 快速排序是从冒泡排序演变而来的。 快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。 为什么快速排序比较快? 因为它使用了分治法...

查找_二分查找

查找_二分查找

简述 也叫折半查找,性能优异。 但是所查找的数列必须是有序序列。 复杂度 时间复杂度 log2(N) 实现 非递归实现 递归实现 插值查找 二分查找每次都会计算出一个mid,然后拿这个mid的值去做比较 $$ mid = \frac{(low+high)}{2} $$ $$ mi...

排序_基数排序

排序_基数排序

简述 基数排序思想,假设对数组A[p...r]排序,其中数组中所有元素都为正整数,并且不超过RADIXWITH位(有模板的RADIXWITH参数指定): 首先对A中所有元素按照个位数大小进行排序(原地的) 再对A中所有元素按照个十数大小进行排序(原地的) 一直到最后按照A中所有元...

匹配_KMP模式匹配算法:二

匹配_KMP模式匹配算法:二

预处理操作 参数 iterP_begin:模式序列P的起始迭代器 iterP_end:模式序列P的终止迭代器 解析 初始化 pai[1] = 0,k = 0 遍历(q从:2->m) 从2开始,因为Pk必须是Pm的真子集。 条件:k > 0 && p[k...

算法特点、哈希表

算法特点、哈希表

基于算法思想 比较排序 冒泡排序(Bubble Sort): 反复交换相邻的逆序元素 快速排序(Quick Sort): 通过分区交换来排序,递归地对分区进行排序 堆排序(Heap Sort): 利用堆结构进行排序,构建最大堆,然后依次将最大元素移到数组末尾 归并排序(Merge...

匹配_Rabin_karp匹配算法

匹配_Rabin_karp匹配算法

定义 假设文本是一个长度为n的数组 T[1...n],而模式是一个长度为m的数组P[1...m],其中m<=n。进一步假设P和T的元素都是来自一个有限字母集合M的字符。如M={0,1}或者M={a,b,c,...z}。 字符数组P和T通常称为字符串。 原理 假设 M={0,...

排序_冒泡排序

排序_冒泡排序

bingliaolong Algorithm 5年前 12 0

简述 冒泡排序通过反复遍历要排序的列表,比较每对相邻项,并以升序或降序的方式交换它们。重复操作列表,知道不需要交换为止。 复杂度 名称 最好 平均 最差 空间 稳定性 冒泡排序 n n2 n2 1 是 理解 冒泡排序,有n个数字,就要进行n次大循环 每次大循环,会找到所有数里面的...

扫一扫二维码分享