学习算法思想,修炼编程内功
慕课网实战课程学习笔记
Elylicery
这个作者很懒,什么都没留下…
展开
-
算法思想(五)——二叉搜索树
二分查找法 Binary Search对于有序数列,才能使用二分查找法(排序的作用)(logn级别复杂度)使用递归方式实现二分查找法递归实现通常思维起来更容易,但在性能上会有略差。...原创 2019-02-24 23:46:39 · 621 阅读 · 0 评论 -
算法思想(四)—— 堆和堆排序
为什么使用堆?优先队列普通队列:先进先出;后进后出优先队列:出队顺序和入队顺序无关;和优先级相关为什么使用优先队列?对于动态问题例如操作系统执行任务,每个任务都有优先级,动态选择优先级最高的任务执行,使用优先队列。比如不同用户对同一界面的请求,回应请求优先队列。或者游戏中只能选择角色攻击敌人的顺序,角色的攻击范围是一定的,该角色由电脑控制选择敌人攻击,使用优先队列。对于...原创 2019-02-02 13:41:06 · 418 阅读 · 0 评论 -
算法思想(三)—— 高级排序算法
写在前面:视频:慕课网-学习算法思想,修炼编程内功代码:Play-with-Algorithms/tree/master/03-Sorting-Advance/Course归并排序//将arr[l...mid]和arr[mid+1...r]两部分进行归并template<typename T>void __merge(T arr[],int l,int mid,int原创 2019-01-27 21:07:56 · 189 阅读 · 0 评论 -
算法思想(二)——排序基础
使用代码编写测试用例使用rand 生成随机数,上限是rangeR,下线是rangeLarr[i]=rand()%(rangeR-rangeL+1)+rangeL;//生成有n个元素的随机数组,每个元素的随机范围为[rangel,rangeR] int* generateRamdomArray(int n,int rangeL,int rangeR) { assert(rangeL&lt...原创 2019-01-25 16:14:42 · 287 阅读 · 0 评论