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:
");
        scanf("%d",&x);

        for(i = 0;i<N;i++)
        {
                if(x == arr[i])
                {
                        f =i;
                      break;

                }

        }

        printf("
arr[N]=
");
        for(i = 0;i<N;i++)
        {
                printf("%d	",arr[i]);
                if((i+1)%4==0)
                printf("
");

        }
        printf("
");

        if(f<0)
        {
                printf("not found!");


        }
        else
        { 
          printf("shuju:%d is located in %d 
",x,f+1);
        }

        system("pause");
        return 0;

}
                        

算法的新进展

并行算法:化分法,平衡树法,倍增法,指针跳跃法都是常用的算法

遗传和进化算法:目前在组合优化,机器学习,信号处理,自适应控制等方面得到广泛的应用

 

版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3443350.html

 

原文地址:https://www.cnblogs.com/fengdashen/p/3443350.html