c/c++快乐算法第三天

这篇具有很好参考价值的文章主要介绍了c/c++快乐算法第三天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

c/c++感受算法快乐(3)

开始时间2023-04-16 22:21:10

结束时间2023-04-17 00:09:34

前言:很好,这周就要结束了,大家都回学校了么,嘻嘻。回顾一下昨天的算法题,1.4抓交通肇事犯运用枚举模拟,1.5兔子产子问题运用迭代循环,1.6牛顿迭代法求方程根迭代循环,1.7最佳存款问题迭代循环。什么是迭代?对计算机特定程序中需要反复执行的子程序(一组指令),进行一次重复,即重复执行程序中的循环,直到满足某条件为止,亦称为迭代。快来看看今天的问题叭!

第一章 趣味算法入门

第八题 冒泡排序

一.问题描述

c/c++快乐算法第三天

 二.设计思路

  有输入,并且为自行输入的n个整数序列。这里我们需要用到冒泡排序,冒泡排序是什么?它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成,如同汽水中的气泡最终会冒到顶部一样顾名冒泡排序。冒泡排序总的平均时间复杂度为,冒泡排序是一种稳定排序算法。升序排列为数据从小到大排列。

c/c++快乐算法第三天

 三.流程图

c/c++快乐算法第三天

 四.源代码

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a[n];
    int i=0,j=0,temp;
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<n;i++)
    {
        for(j=0;j<n-i;j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        printf("%d\t",a[i]);
    }
    return 0;
}

 

五.运行结果

c/c++快乐算法第三天

 第九题 折半查找

一.问题描述

c/c++快乐算法第三天

 二.设计思路

  

c/c++快乐算法第三天

三.流程图

c/c++快乐算法第三天

 四.源代码

#include<stdio.h>
int main()
{
    int arr[]={3,4,10,13,33,42,46,63,76,78,95,96,120};
    int size=sizeof(arr)/sizeof(arr[0]);//数组的长度
    int x,middle;
    scanf("%d",&x);//输入要查找的数
    int left=0;
    int right=size;
    while(left<=right)//循环条件
    {
        middle=(left+right)/2;//中间数
        if(arr[middle]<x)
        {
            left=middle+1;//要查找的数在中间数的右边,左端加一即向右移,缩小范围
        }
        else if(arr[middle]>x)
        {
            right=middle-1;//要查找的数在中间数的左边,右端加一即向左移,缩小范围
        }
        else if(arr[middle]=x)//最后当中间数=要查找的数时查找完毕
        {
            printf("%d在arr[%d]\n位置:第%d个数",x,middle,middle+1);
            break;
        }
    }
    if(left>right)//当left>right时证明此范围内不存在要查找的数
        {
            printf("查无此数\n");
        }
        return 0;
}

 

五.运行结果

c/c++快乐算法第三天

 第十题 数值转换

一.问题描述

c/c++快乐算法第三天

 二.设计思路

c/c++快乐算法第三天

 

三.流程图

c/c++快乐算法第三天

 四.源代码

#include<iostream>
using namespace std;
#define Max 101 //限定数组最大长度
int char_to_num(char ch); //返回字符对应的数字
char num_to_char(int num); //返回数字对应的字符
long source_to_decimal(char temp[],int source);
//返回由原数转换成的十进制数
int decimal_to_object(char temp[],long decimal_num,int object);
//返回转换成目标进制的数组长度
void output(char temp[],int length); //将字符数组逆序输出
int main(){
int source; //存储原来的进制
int object; //存储目标进制
int length; //存储转化后的数组长度
long decimal_num; //存储转换成的十进制数
char temp[Max]; //存储待转化的数值 和转化后的数值
int flag=1; //是否结束程序
while(flag)
{
cout<<"转换前的数是:";
cin>>temp;
cout<<"转换前的进制是:";
cin>>source;
cout<<"转换后的进制是";
cin>>object;
cout<<"转换后的数值是:";
decimal_num=source_to_decimal(temp,source);
length=decimal_to_object(temp,decimal_num,object);
output(temp,length);
cout<<"继续请输入1,否则输入0";
cin>>flag;
}
}
int char_to_num(char ch)
{
if(ch>='0'&&ch<='9')
return ch-'0'; //0~9
else
return ch-'A'+10;//大于10的数字
}
char num_to_char(int num)
{
if(num>=0&&num<=9)
return (char)('0'+num-0);
else
return (char)('A'+num-10);
}
long source_to_decimal(char temp[],int source)
{
long decimal_num=0;
int length;
int i;
for(i=0;temp[i]!='\0';i++);
length=i;
for(i=0;i<length-1;i++)
decimal_num=(decimal_num*source)+char_to_num(temp[i]);
return decimal_num;
}
int decimal_to_object(char temp[],long decimal_num,int object)
{
int i=0;
while(decimal_num)
{
temp[i]=num_to_char(decimal_num%object);
decimal_num=decimal_num/object;
i++;
}
temp[i]='\0';
return i;
}
void output(char temp[],int length)
{
int i;
for(i=length-1;i>=0;i--)
cout<<temp[i];
cout<<endl;
}

 

五.运行结果

c/c++快乐算法第三天文章来源地址https://www.toymoban.com/news/detail-415776.html

 总结:恭喜你学完第一章趣味算法入门!不知你是在为新赛季的阴间队友而气出内伤,还是在为三千字职业生涯规划结课论文而默默流泪,总之明天就是周一,新的一周就要开始咯,冲哇冲哇!

每日一mo:Opportunity is missed by most people because it is dressed in overalls and looks like work. 

 

到了这里,关于c/c++快乐算法第三天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 带你用Python制作7个程序,让你感受到端午节的快乐

    名字:阿玥的小东东 学习:Python、C/C++ 主页链接:阿玥的小东东的博客_CSDN博客-pythonc++高级知识,过年必备,C/C++知识讲解领域博主 目录 前言 程序1:制作粽子

    2024年02月09日
    浏览(44)
  • 实习记录——第三天

    今天还是去学习,昨天看另一个实习生有在了解ctf什么的,我就打算也看一看,问了问我的导师,他说我闲了可以看看,把我拉到了公司的ctf组,本来以为会是什么高大上的组织,结果好像就是平时分享分享知识,偶尔打个比赛,今天加进去,一天没任何动静。 简单看了看导

    2024年01月25日
    浏览(48)
  • QT第三天

    完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Y

    2024年02月03日
    浏览(38)
  • 计算机网络---第三天

                                                        OSI参考模型与TCP/IP模型 背景:①兼容性较差,接口不统一            ②不利于排错与维护            ③设备成本高 概念:OSI参考模型定义了网络中设备所遵守的层次结构 优点:①开放的

    2024年04月13日
    浏览(37)
  • WebAPIs 第三天

    DOM 事件进阶 事件流 事件委托 其他事件 元素尺寸与位置 事件流与两个阶段说明 事件捕获 事件冒泡 阻止冒泡 解绑事件 1.1 事件流与两个阶段说明 ① 事件流:指的是事件完整执行过程中的流动路径 ② 事件流分为捕获阶段和冒泡阶段  1.2 事件捕获 从DOM根元素开始去执行对

    2024年02月13日
    浏览(38)
  • 防御第三天

    1.总结当堂NAT与双机热备原理,形成思维导图    2.完成课堂NAT与双机热备实验 fw1: USG6000V1sy [USG6000V1]int g0/0/0 [USG6000V1-GigabitEthernet0/0/0]ip add 192.168.18.2 24 [USG6000V1-GigabitEthernet0/0/0]service-manage all permit (地址无所谓,能通就行):         fw2: USG6000V1sy [USG6000V1]int g0/0/0 [USG6000V1-Giga

    2024年02月15日
    浏览(52)
  • 前端之css第三天

    CSS的盒子模型是用来描述HTML元素在页面中的布局和排列方式的一种模型。每个HTML元素都可以被看作是一个矩形的盒子,这个盒子由四个可调整大小的部分组成:内容区域、内边距区域、边框区域和外边距区域。 内容区域(content area):此区域存放元素的实际内容,例如文本

    2024年02月22日
    浏览(36)
  • python基础第三天

    s=‘hello’ sio=io.StringIO(s) sio.getValue() ‘hello’ sio.seek(3) sio.write(‘a’) sio.getValue() ‘helao’ 按位或| 只要有一个是1就是1 按位与 两个都是1才是1 按位异或^ 一个是1一个是0才是1,不相同才是1 22 =2 2 2=2*4 左移1位 81 =8/2=4 python里没有自增a++ 自减a– 位运算符和算数运算符比较运算符

    2024年02月08日
    浏览(35)
  • 代码随想录第三天

    链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。 链表的入口节点称为链表的头结点也就是head。 单链表 与上面所说一致。 单链表中的指针

    2024年02月04日
    浏览(41)
  • Day 3 打卡第三天

    给你一个链表的头节点  head  和一个整数  val  ,请你删除链表中所有满足  Node.val == val  的节点,并返回  新的头节点  。  示例 1: 示例 2: 示例 3: 提示: 列表中的节点数目在范围  [0, 104]  内 1 = Node.val = 50 0 = val = 50 目标值在链表开头需特判,搞清楚逻辑关系 有点多

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包