绪论—— 算法(特点、评价标准、时间复杂度、空间复杂度)

本文介绍了算法的基本概念,包括其特点和评价标准。算法应具备有穷性、输入、输出、可行性及确定性。重点讨论了正确性、可读性、健壮性和效率作为设计好算法的目标。文章通过实例解释了时间复杂度和空间复杂度,指出时间复杂度的几个数量级,并分析了冒泡排序和一个未知算法的时间复杂度。同时强调了空间复杂度对算法的影响,以冒泡排序为例说明额外变量对空间的需求,并通过递归算法的例子解释空间浪费的问题。
摘要由CSDN通过智能技术生成

什么是算法?
算法(Algorithm)是对特定问题求解步骤的一种描述,是为了解决一个或者一类问题给出的一个确定的、有限长的操作序列。

算法的特点
一个算法应该满足的5个条件:①有穷性:一个有限指令集 ;②有输入:接受一些输入(有些情况下不需要输入); ③有输出:产生输出 ;④可行性:一定在有限步骤之后终止;⑤确定性:每一条指令必须有充分明确的目标、不可以有歧义 、在计算机能处理的范围之内 、描述应不依赖于任何一种计算机语言以及具体的实现手段。
为让读者清晰了解到算法与代码的差别,并鉴于读者已学习过C语言,李老爹举个例子——选择排序:

void SelectionSort( intList[], intN )//这是算法!!
 {
    /* 将N个整数List[0]...List[N-1]进行非递减排序*/ 
 for( i = 0; i < N; i ++ ) 
 {
    MinPosition= ScanForMin( List, i,N–1 ); /* 从List[i]到List[N–1]中找最小元,并将其位置赋给MinPosition*/ 
 Swap( List[i], List[MinPosition] ); /* 将未排序部分的最小元换到有序部分的最后位置*/ 
 } }
 
void SelectSort(int r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值