基础算法:(1)分治法第二课
来源:互联网 发布:猴年百事可乐知乎 编辑:程序博客网 时间:2024/06/04 01:05
大二课程真的多,隔了好久才能多学点基础算法
接上篇,整理分治法思想的一些应用
ACM程序设计竞赛基础教程
勤能补拙的博客(主要参考)快速排序
归并排序是按照元素在数组里的位置来对它们进行划分的,而快速排序是按照元素的值对它们进行划分。
递推关系式:
根据主定理得知,时间复杂度和归并排序一样。
1)其关键在于寻找分裂位置!!!!(2个指针左右扫描,交换。注意这种方法)
2)学会快排采用的分区这种思想。
快速排序是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。
但是快排只能对连续内存的数据进行排序,像链表这样的结构是无法排序的。
基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有多个重复值的数组来说,基本快速排序的效率较低,且不稳定
有趣的分析算法(51CTO啊哈磊)
http://developer.51cto.com/art/201403/430986.htm
---------------------------------------------------------------------------------------------------------------------------------------------------
折半查找
对有序数组采用折半查找:递归和非递归实现都比较简单。
分治的递推式:
根据主定理,它的复杂度是logn。
实际上分治算法一般是分成了几个子规模就对这几个子规模处理然后合并结果,然而折半查找分成了2个子规模,每次却总能排除一个子规模,只对一个子规模进行处理,准确的说,它是一种减治策略。或者说可以把它看做是分治算法的退化。
--------------------------------------------------------------------------------------------------------------------------------------------------
- 基础算法:(1)分治法第二课
- 基础算法:(1)分治法第一课
- 基础算法--分治法
- 基础算法(四) --- 分治法
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第七章 分治算法
- 算法基础之分治法
- 基础算法之分治法
- (第二章)分治法
- 基础算法 —— 合并排序(分治法)
- 基础算法分治
- 算法基础--分治
- 算法第二篇之分治
- 算法导论:分治法(1)
- 算法导论第二版笔记之分治法
- Reverse Pairs (第二周:分治法)
- 算法第二周 分治算法应用
- 算法-分治法(精简)
- 算法(二):分治法
- 深入理解Java之线程池
- 策略模式
- Thinking in Java--并发篇
- [Navicat for MySQL系列]Navicat如何使用(一)
- 【多级排序】水王争霸
- 基础算法:(1)分治法第二课
- 高精度算法之乘法
- windows下Redis的Java客户端Jedis
- 【C/C++】空间复杂度和时间复杂度的计算
- Javascript笔记 DAY6
- 编译安装LAMP之httpd
- openwrt编译/升级过程
- UML类图小记
- 从源码分析Android中Handler的消息传递机制