1. 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作
2. 算法有五个特性:有穷性、确定性、可行性、输入、输出
3. 算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求
4. 算法的时间量度记作 T(n)=O(f(n)),他表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。
5. 一般情况下,随着n的增大,T(n)增长越慢的算法成为最优算法
6. 空间复杂度:S(n) = O(f(n)),n为问题的规模(或大小)
7. 算法的含义与程序十分相似,但二者是有区别的。
8. 个程序不一定满足有穷性(如一个操作系统在用户未使用前一直处于“等待” 的循环中, 直到出现新的用户事件为止。这样的系统可以无休止地运行,直到系统停工。);
9. 程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法若用计算机语言来书写,则它就可以是程序
冒泡排序算法:
1.void bubble_sort(int a[] , int n)
2.{ //将a中整数序列按从小到大的顺序排序
3. for(i = n-1, change = TURE ;i >= 1 && change ; --i)
4. {
5. change = FALSE;//交换标识
6. for(j = 0; j < i; ++j)
7. if(a[j] > a[j+1])
8. {
9. a[j]<--->a[j+1];
10. change = TRUE;
11. }
12.}