算法的定义:算法是解决实际问题的一种精确的描述方法,目前,广泛认同的定义是:算法的模型分析的一组可行的确定的和有穷的规则
算法的五个特性:有穷性,确切性,输入,输出,可行性。目前算法的可执行的步骤非常广泛,常见的算法包括递归,推进,穷举,贪婪,动态化规,和迭代
算法的归类:
按照算法的应用领域,算法可以分为:基本算法,数据结构相关的算法,几何算法,图论算法,规划算法,加密算法,解密算法,排序算法,查找算法,并行算法,和数论算法
按照算法结果的确信性分析,算法可以分为确定性算法和非确定性算法
确定性算法:在有限的时间得到唯一的结果,且经常取决于输入值
非确定性算法:在有限的时间完成计算,得到的结果往往是不唯一的
算法举例:
#include<stdio.h>
#include<stdlib.h>
#include<time.h> #define N 20 int main()
{
int arr[N],x,n,i;
int f = -; srand(time(NULL));
for(i = ;i<N;i++)
{
arr[i] = rand()/;
} printf("please input the number you want to search:\n");
scanf("%d",&x); for(i = ;i<N;i++)
{
if(x == arr[i])
{
f =i;
break; } } printf("\narr[N]=\n");
for(i = ;i<N;i++)
{
printf("%d\t",arr[i]);
if((i+)%==)
printf("\n"); }
printf("\n"); if(f<)
{
printf("not found!"); }
else
{
printf("shuju:%d is located in %d \n",x,f+);
} system("pause");
return ; }
算法的新进展
并行算法:化分法,平衡树法,倍增法,指针跳跃法都是常用的算法
遗传和进化算法:目前在组合优化,机器学习,信号处理,自适应控制等方面得到广泛的应用
版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3443350.html