数据结构与算法之排序

有计划写一个自己的算法库,也就是先自己将用c语言实现,再用c++实现


写出一个可以工作的程序并不够。如果这个程序在巨大的数据集上运行,那么运行时间就变成重要的问题。

  • 如何估计程序运行时间
  • 如果选择算法
  • 改进算法性能,优化代码

递归

  • 基准情形——不能递归就能求解的情形
  • 不断推进——需要递归求解的情形,递归调用必须总能够朝着产生基准情形的方向推进
  • 设计法则——假设所有的递归调用都能运行
  • 合成效益法则——切勿在不同的递归调用中做重复的工作。如斐波那契数

  • 如何估计程序运行时间
  • 如何将一个程序的运行时间从天或年降低到秒
  • 粗心使用递归的后果
  • 将一个数自乘得到其幂,计算两个数最大公因数的非常有效的算法

一些简单的定义
当我们说T(N)=O(f(N)),我们在保证T(N)不快于f(N)的速度增长,因此其为一个上界。f(N)=omg(T(N)),T(N)为其下界。
增长速度相等用一个怪怪的符号ϴ,能用这个符号优先用,严谨
如若不明白看数据结构与算法描述——c语言描述

增长速率

c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值