数据结构与算法之排序
2017-01-21 13:33
288 查看
有计划写一个自己的算法库,也就是先自己将用c语言实现,再用c++实现
写出一个可以工作的程序并不够。如果这个程序在巨大的数据集上运行,那么运行时间就变成重要的问题。
如何估计程序运行时间
如果选择算法
改进算法性能,优化代码
递归
基准情形——不能递归就能求解的情形
不断推进——需要递归求解的情形,递归调用必须总能够朝着产生基准情形的方向推进
设计法则——假设所有的递归调用都能运行
合成效益法则——切勿在不同的递归调用中做重复的工作。如斐波那契数
如何估计程序运行时间
如何将一个程序的运行时间从天或年降低到秒
粗心使用递归的后果
将一个数自乘得到其幂,计算两个数最大公因数的非常有效的算法
一些简单的定义
当我们说T(N)=O(f(N)),我们在保证T(N)不快于f(N)的速度增长,因此其为一个上界。f(N)=omg(T(N)),T(N)为其下界。
增长速度相等用一个怪怪的符号ϴ,能用这个符号优先用,严谨
如若不明白看数据结构与算法描述——c语言描述
增长速率
c
写出一个可以工作的程序并不够。如果这个程序在巨大的数据集上运行,那么运行时间就变成重要的问题。
如何估计程序运行时间
如果选择算法
改进算法性能,优化代码
递归
基准情形——不能递归就能求解的情形
不断推进——需要递归求解的情形,递归调用必须总能够朝着产生基准情形的方向推进
设计法则——假设所有的递归调用都能运行
合成效益法则——切勿在不同的递归调用中做重复的工作。如斐波那契数
如何估计程序运行时间
如何将一个程序的运行时间从天或年降低到秒
粗心使用递归的后果
将一个数自乘得到其幂,计算两个数最大公因数的非常有效的算法
一些简单的定义
当我们说T(N)=O(f(N)),我们在保证T(N)不快于f(N)的速度增长,因此其为一个上界。f(N)=omg(T(N)),T(N)为其下界。
增长速度相等用一个怪怪的符号ϴ,能用这个符号优先用,严谨
如若不明白看数据结构与算法描述——c语言描述
增长速率
c
相关文章推荐
- 数据结构与算法练习题之高效排序
- 数据结构与算法整理之排序(一)
- 【数据结构与算法】内部排序之三:堆排序(含完整源码)
- 【数据结构与算法】快速排序
- 数据结构与算法(8)--行排序 列排序
- 【数据结构与算法基础】单链表及其应用基数排序 / Singly Linked List and radix sort
- 【数据结构与算法】内部排序之三:堆排序(含完整源码)
- 【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)
- 【数据结构与算法】内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 数据结构与算法——冒泡排序、选择排序和快速排序
- 【练习】数据结构与算法练习题之高效排序
- 【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)
- 数据结构与算法之三直接插入排序
- 【数据结构与算法】内部排序之五:计数排序、基数排序和桶排序(含完整源码)
- 【数据结构与算法】内部排序之四:归并排序和快速排序(含完整源码)
- .net 数据结构与算法基础:高级排序
- 数据结构之排序算法之O(nlogn)
- 【数据结构与算法】排序
- Java数据结构与算法之排序
- 数据结构——算法之(005)(输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字)