zoukankan      html  css  js  c++  java
  • 算法基础

    1. 算法(algorithm)。是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。

    2. 算法设计的要求。通常设计一个好的算法应考虑达到以下目标。

    (1)正确性。算法应当满足具体问题的需求。(2)可读性。主要是为了人的阅读和交流,其次才是机器执行。(3)健壮性。当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。(4)效率与低存储量需求。效率指的是算法执行的时间。存储量需求指算法执行过程中所需要的最大存储空间。

    3. 算法效率的度量。

    度量一个程序的执行时间通常有两种方法。(1)事后统计的方法。利用计算机本身的计时功能,通过一组或若干组相同的统计数据以分辨。(2)事前分析估算的方法。

    同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行时,效率均不同。撇开与计算机硬件、软件有关的因素,可以认为一个特定算法“运行工作量”的大小,只依赖于问题的规模,或者说,它是问题规模的函数。

    一个算法是由控制结构(顺序、分支和循环)和原操作(基本数据类型的操作)构成的,则算法时间取决于两者的综合效果。通常以基本操作重复执行的次数作为算法的时间量度。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n) = O(f(n)),表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐进时间复杂度,简称时间复杂度。语句的频度指的是该语句重复执行的次数。

    4. 算法的存储空间需求。空间复杂度。记作S(n) = O(f(n)) 其中n为问题的规模。若额外空间相对于输入数据量来说是常数,则称此算法为原地工作。

    5. 直接插入排序(Straight Insertion Sort)。是一种最简单的排序方法。 它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。

  • 相关阅读:
    在酷热的就业天气寻找几丝凉意
    《Orange ’ s :一个操作系统的实现 》作者自序
    Windows的设备驱动框架
    Windows的设备驱动框架中的上层与下层模块
    如何搭建自己的开发环境
    数据库设计指南(二)设计表和字段
    软件敏捷架构师
    Struts到JSF/Tapestry
    敏捷开发
    barcode制作条形码及破解
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/2779757.html
Copyright © 2011-2022 走看看