码迷,mamicode.com
首页 > 编程语言 > 详细

算法1~2019.2.17

时间:2019-02-17 23:48:07      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:相对   理解   出现   ons   []   数字   经典   排列   常用   

//非数值计算常用的经典算法
/* 穷举
也称“枚举法”,极可能出现每一种情况——测试,判断是否满足条件
,一般采用循环来实现。
例子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\n",x);
            g=x%10;
            s=(x/10)%10;
            b=x/100;
            printf("%d %d %d\n",g,s,b);
        
            if(pow(s,3)+pow(g,3)+pow(b,3)==x)
            {
                printf("%d\n",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\n",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;
}
 

算法1~2019.2.17

标签:相对   理解   出现   ons   []   数字   经典   排列   常用   

原文地址:https://www.cnblogs.com/lijianmin6/p/10393239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!