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