c语言算法
扩展资料
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。
所谓算法,就是为解决某一特定问题而采取的具体工作步骤和方法。当编写一个程序的时候,总是要先想好这个程序是干什么的,应该如何实现这个目标,程序应该先完成什么功能,接下来进行什么操作,处理这个程序的格式是什么,等等一系列的问题,在有些情况下,还需要涉及其他领域,如数学,物理,因此在考虑以上所有因素的时候,都应该考虑一个关键的问题——算法。基本算法策略包括:枚举法、归纳法、递归法以及排序的各类方法。
1、枚举法:
常被称之为穷举法,是指从可能的集合中一一枚举各个元素,用题目给定的约束条件判定哪些是无用的,哪些是有用的。能使命题成立者,即为问题的解。
采用枚举算法解题的基本思路:
a、确定枚举对象、枚举范围和判定条件;
b、一一枚举可能的解,验证是否是问题的解
2、归纳法:
这是一个相对比较“聪明”的`方法,看到问题之后,可以通过分析归纳,找出从变量旧值出发求出新值的规律。
可以用归纳法解决的问题,它们的相邻数之间有着明显的规律性的变化,通常可以从初始条件进行一定的归纳求出下一个值,并利用这种规律性一步一步递推到结果。如循环累乘、循环累加等。
3、递归法:
一般使用在函数的调用上,所谓函数的“递归调用”是指一个函数直接调用自己(即直接递归调用)或通过其他函数间接地调用自己(即间接递归调用)。
4、排序的各类方法:
a、冒泡排序
就是将被排序的记录数组arr[0]…arr[n]进行排列,每个记录arr[i]看作是“气泡”。根据轻气泡不能在重气泡之下的原则,从下到上扫描数组arr,凡扫描到违反本原则的轻气泡,就使其向上“漂浮”。如此反复进行,直到最后任何两个气泡轻者在上,重者在下为止。
b、选择排序
这是一种很简单的排序方法,它的基本解题思路:选择法排序(设对N个数进行排序)是每次从待排序数据中选择最小的数,与相应位置上的数交换。