• 算法1~2019.2.17


    //非数值计算常用的经典算法
    /* 穷举
    也称“枚举法”,极可能出现每一种情况——测试,判断是否满足条件
    ,一般采用循环来实现。
    例子1:用穷举法输出所有的水仙花数(三位整数:其每数位上的数字的立方和与该数相等
    ,比如“1**3+5**3+3**3=153)*/
    /*    #include<stdio.h>
        #include<math.h>
        int main()
        {
            //方一
            int x,g,s,b;
               for(x=100;x<=199;x++);
            {
                printf("%d ",x);
                g=x%10;
                s=(x/10)%10;
                b=x/100;
                printf("%d %d %d ",g,s,b);
            
                if(pow(s,3)+pow(g,3)+pow(b,3)==x)
                {
                    printf("%d ",x);
                }
            }
        
            //方二
          for(b=1;b<=9;b++)
            {
                 for(s=0;s<=9;s++)
                 {
                    for(g=0;g<=9;g++)
                    {
                        x=b*100+s*10+g;
                           if(b*b*b+s*s*s+g*g*g==x)
                        {
                            printf("%d ",x);
                        }
                   }
                 }
            }
            return 0;
        }
    */

    //冒泡排序
    /*1、从存放序列的数组中的第一个元素开始到最后一个元素,
    依次对相邻两数进行比较,若前者大后者小,则交换两个数的位置
    2每趟比前一趟少比较一次
    */
    //任意读入10个整数,将其用冒泡法案升序排列后输出
    /*    #include<stdio.h>
        #define n 10 //定义宏 n=10
        main(int argc ,char const *argv[])
        {
            int a[n],i,j,t;
            for(i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
            }
            for(j=0;j<=n-1;j++)
            {
                for(i=0;i<n-j-1;i++)
                {
                    if(a[i]>a[i+1])
                    {
                        t=a[i];
                        a[i]=a[i+1];
                        a[i+1]=t;
                    }
                }
            }
            for(i=0;i<n;i++)
            {
                printf("%d ",a[i]);
            }
            return 0;
        }
    */

    //选择排序
    /*选择排序是相对好理解的排序算法。假设要对含有n个
    序列进行升排序,算法步骤是:
         从数组存放n个数中找出最小数下标,然后将最小数与第一个数交换位置
         在从n-1个数找出最小数,将此数与第二个数交换位置
         重复n-1 ,即可完成其所求
    */
    #include<stdio.h>
    #define n 10
    main()
    {
        int a[n],i,j,k,t;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        for(i=0;i<n;i++)
        {
            k=i;
            for(j=i+1;j<n;j++)
            {
                if(a[j]<a[k])
                {
                    k=j;
                }
                if(k!=i)
                {
                    t=a[i];
                    a[i]=a[k];
                    a[k]=t;
                }
            }
        }
        for(i=0;i<n;i++)
        {
            printf("%d ",a[i]);
        }
        return 0;
    }
     

  • 相关阅读:
    javascript作用域
    [翻译]Review——How JavaScript works:The building blocks of Web Workers
    [转]Shared——回调函数是什么
    由上一个血案引发的关于property和attribute关系的思考
    RN canvas画布大小之谜
    [转]Tips——Chrome DevTools
    Algorithm——无重复字符的最长子串
    [翻译]Review——The Inner Workings Of Virtual DOM
    Tips——单页面内的多重跳转路由使用
    [转]Shared——Javascript中的call详解
  • 原文地址:https://www.cnblogs.com/lijianmin6/p/10393239.html
Copyright © 2020-2023  润新知