- 博客(6)
- 资源 (2)
- 收藏
- 关注
转载 C++栈和队列标准库函数
栈使用标准库的栈和队列时, 应包含先关头文件. 在栈中应包含头文件: #include 定义: stack ss.empty(); //如果栈为空则返回true, 否则返回false;s.size(); //返回栈中元素的个数s.top(); //返回栈顶元素, 但不删除该元素s.pop(); //弹出
2018-01-11 15:47:03 265
原创 归并排序MergeSort
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。 将序列2分至单个元素,将2分的序列归并(按序保存在缓存空间,最后保存会原序列)void MergeSort(int* a, int len){ MSort(a, 0, len - 1);}void MSor
2018-01-11 15:00:33 123
原创 希尔排序(shellsort)
希尔排序是改进的插入排序,将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序……最后选择增量为1,即使用直接插入排序,使最终数组成为有序。void ShellSort(int* a, int len){ int d = len / 2; while (d >=
2018-01-11 11:50:40 112
原创 快速排序 quicksort
快速排序应用分治法的思想进行处理,具体是: 1. 选择基准数(可以随机选择,通常可选数组第一个和最后一个或中间数); 2. 分割待排序序列(数组),序列前后设置left和right指针,往中间移动,比较left和基准,基准和right,发现逆序,交换数据,直到指针重合; 3. 重复递归处理分割序列。class __declspec(dllexport) QuickSort{pub
2018-01-11 08:48:00 160
原创 堆排序heapsort
class __declspec(dllexport) HeapSort{public: HeapSort(int* a, int len); ~HeapSort(); void AdjustHeap();private: int* array_; int length_;};void swap(int* a, int* b){ int
2018-01-10 15:33:26 162
转载 线段树
一 概述线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是[a,b],那么(c=(a+b)/2)左儿子的区间是[a,c],右儿子的区间是[c+1,b]。二 从一个例子理解线段树下
2018-01-09 10:28:33 191
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人