算法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\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;
}

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

时间: 2024-10-08 18:58:10

算法1~2019.2.17的相关文章

解题报告 smoj 2019初二创新班(2019.3.17)

目录 解题报告 smoj 2019初二创新班(2019.3.17) T1:找玩具 题目描述 题意转化 分析 代码 优化(代码复杂度) T2:闯关游戏 题目描述 分析 代码 T3:子数组有主元素 题目描述 分析 代码(\(O(nm\log n)\)) 优化 代码(\(O(nm)\)) 解题报告 smoj 2019初二创新班(2019.3.17) 时间:2019.3.21 T1:找玩具 题目描述 在游戏开始之前,游戏大师在房间的某些地方隐藏了N个玩具.玩具编号为1到N.您的任务是尽可能多地找到这些玩

原程序员的算法课(1)-算法概述2019年08月18日 17:58:49 十步杀一人_千里不留行 阅读数 11更多所属专栏: 程序员的算法课编辑

[算法之美]数据结构+算法=程序. 前言 数据结构只是静态的描述了数据元素之间的关系.高效的程序需要在数据结构的基础上设计和选择算法. 高效的程序=恰当的数据结构+合适的算法 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出.如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题.不同的算法可能用不同的时间.空间或效率来完成同样的任务.一

2019年17道高频React面试题及详解

以下面试题来源于github项目前端面试指南,那里有超过200道高频前端面试题及答案,目前拥有1400star. 为什么选择使用框架而不是原生?框架的好处: 组件化: 其中以 React 的组件化最为彻底,甚至可以到函数级别的原子组件,高度的组件化可以是我们的工程易于维护.易于组合拓展.天然分层: JQuery 时代的代码大部分情况下是面条代码,耦合严重,现代框架不管是 MVC.MVP还是MVVM 模式都能帮助我们进行分层,代码解耦更易于读写.生态: 现在主流前端框架都自带生态,不管是数据流管理

2019.12.17 面向对象习题

/** * TimeTraveler.java * com.DuiXiang * * Function: TODO * * ver date author * ────────────────────────────────── * 2019年12月17日 17671 * * Copyright (c) 2019, TNT All Rights Reserved.*/ package com.DuiXiang; /** * ClassName:TimeTraveler Function: TOD

2019 1 17 赵松儒

1.函数的定义:返回值类型 函数名(函数列表) 2.函数的声明:返回值类型 函数名(参数类型): 3.函数的调用:变量 = 函数名(参数的值)(在函数有返回值的时候)     注意:若函数无返回值,返回值类型为void 4.函数的传参是从右至左的 如:printf("a:%d, b:%d, c:%d", a, b, c);先传c,再传b,再传a 5.变量分为:局部变量 全局变量    局部变量:在函数内定义              生存周期和作用域:从定义开始到函数结束      

2019/9/17 校内练习赛 解题报告

比赛详情 本次练习赛已收录至2019/9/22 本周总结 tree 给定一棵无根树,求使得所有节点深度和最大的根节点. 思路 考虑先令\(1\)为根,\(tot\)为此时所有节点深度和,预处理\(size(x)\)表示\(x\)子树的大小.设\(u\)为\(1\)的某个儿子,显然从\(1\)走到\(u\)时,有: \[tot=tot+(n-size[u])-size[u]\] 将结论推广到所有节点,扫描整棵树得到答案,时间复杂度\(O(n)\). 代码 #include<bits/stdc++.

2019/10/17 CSP模拟 总结

T1 补票 Ticket 没什么好说的,不讲了 T2 删数字 Number 很后悔的是其实考场上不仅想出了正解的方程,甚至连优化都想到了,却因为码力不足只打了\(O(n^2)\)暴力,甚至还因为细节挂成了\(40\ pts\) 以后还是应该多写一下码农题 规定一下,下面的\(j\)没有特殊说明,取值范围默认在\(1, i - 1\) 考虑什么情况是合法的,首先最后对答案有贡献的元素组成的序列一定是严格上升的,即\(a_i > a_j\) 然后考虑还有没有别的限制呢 放一个图 看到我们的对答案有贡

HD-ACM算法专攻系列(17)——考试排名

问题描述: 源码: 主要要注意输出格式. #include"iostream" #include"iomanip" #include"algorithm" #include"string" using namespace std; struct Person { string name; int count; int score; }; bool cmp(Person a, Person b) { if(a.count >

PAT 甲级 A1083 (2019/02/17)

#include<cstdio> #include<cstring> #include<algorithm> // STL using namespace std; //使用sort()函数必须加上 const int MAXN = 50; struct Student{ char name[15]; char id[15]; int score; }stu[MAXN]; bool cmp(Student a, Student b){ return a.score &g