数据结构与算法学习(day1)——简化版桶排序

news2025/1/8 4:24:01

文章目录

    • 前言
    • 本章目标
    • 简化版桶排序
      • 题目一
      • 题目二

前言

(1)我是一个大三的学生(准确来说应该是准大三,因为明天才报名哈哈哈)。

(2)最近就想每天闲着没事也刷些C语言习题来锻炼下编程水平,也一直在思考企业对应届大学生能力的要求,所以经常会想到关于面试的事情。由于我也没实习过,所以我对面试没有一个具象化的概念。

(3)好在我会动用网络去搜集信息,我打开了CSDN查了下“C语言编程每日一练”,就发现了“C语言面试题每日一练‘’的文章,其中我发现了,嵌入式面试对数据结构与算法的要求也不低,所以我要特地花时间去提升下我的数据结构与算法的能力了,不能啥也不知道哇!

本章目标

  1. 掌握简化版桶排序的使用场景和代码架构
  2. 会用简化版桶排序解决一些问题

简化版桶排序

简化版桶排序的思路就是,如果要对数据范围是0~10的整数就行排序,那么我们需要11个桶,即一个大小为11的数组,每个元素来表示0到10之间每个数出现的次数,因为数组的元素由a[0]到a[10]来排列,a[0]里面装的是数字0的个数,a[1]里面装的是数字1的个数,以此类推;最后按a[0]至a[10]的顺序或者是a[10]到a[0]的顺序来输出数组的元素,就可以实现对原数据进行从小到大或者是从大到小的顺序排列。

题目一

题目:让计算机随机读入5个数,数的大小范围是0~10;然后将这5个数从大到小输出。

思路:借助一个一维数组。

  1. 从小到大输出
#include <stdio.h>
int main()
{
	int a[10], i, j, t;
	for (i = 0; i <= 10; i++)
		a[i] = 0;     //初始化一维数组为0

	for (i = 1; i <= 5; i++)   //循环读入5个数
	{
		scanf("%d",&t);        //把每一个数读入到变量t中
		a[t]++;                //进行计数
	}

	for (i = 0; i <= 10; i++)
		for (j = 1; j <= a[i]; j++)
			printf("%d ",i);

	getchar(); getchar();
	//这里的getchar();用来暂停程序,以便查看程序输出内容
	//也可以用system("pause");等来代替
	return 0;
}

在这里插入图片描述

  1. 从大到小排序
#include <stdio.h>
int main()
{
	int a[10], i, j, t;
	for (i = 0; i <= 10; i++)
		a[i] = 0;     //初始化一维数组为0

	for (i = 1; i <= 5; i++)   //循环读入5个数
	{
		scanf("%d",&t);        //把每一个数读入到变量t中
		a[t]++;                //进行计数
	}

	//i就是输入的数值,a[i]就是i的个数
	for (i = 10; i >= 0; i--)  //改这里就可以决定是从大到小排序还是从小到大排序
		for (j = 1; j <= a[i]; j++)
			printf("%d ",i);

	getchar(); getchar();
	//这里的getchar();用来暂停程序,以便查看程序输出内容
	//也可以用system("pause");等来代替
	return 0;
}

在这里插入图片描述

题目二

题目:输入n个0~1000之间的整数,将它们从大到小排序。

思路:对数据范围在0到1000的整数排序,我们需要1001个桶,来表示0~1000之间每一个数出现的次数。

从大到小输出。

#include <stdio.h>
int main()
{
	int book[1001], i, j, t, n;
	for (i = 0; i <= 1000; i++)
		book[i] = 0;

	scanf("%d",&n);   //输入一个数n,表示接下来有n个数
	for (i = 1; i <= n; i++)
	{
		scanf("%d",&t);
		book[t]++;
	}

	for (i = 1000; i >= 0; i--)
		for (j = 1; j <= book[i]; j++)
			printf("%d ",i);
	getchar(); getchar();
	return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何选择靠谱的全景平台?VR全景加盟从哪方面对比?

VR全景行业经过近几年的发展&#xff0c;已经逐渐普及开来&#xff0c;线下各个行业都有实体商家开始引入VR全景去做营销宣传推广了。不少老板也意识到线上线下双渠道的重要性&#xff0c;而VR全景的存在就刚好满足各行各业的需求&#xff0c;从这一点不难看出&#xff0c;VR全…

协议定制 + Json序列化反序列化

文章目录 协议定制 Json序列化反序列化1. 再谈 "协议"1.1 结构化数据1.2 序列化和反序列化 2. 网络版计算器2.1 服务端2.2 协议定制(1) 网络发送和读取的正确理解(2) 协议定制的问题 2.3 客户端2.4 代码 3. Json实现序列化反序列化3.1 简单介绍3.2 使用 协议定制 J…

《低代码指南》——AI低代码维格云技术与部署架构说明

#整体技术架构说明 维格云概念上由两个部分组成:工作台(workbench)和数据表(datasheet)。 工作台(workbench)维护系统集群节点、组织和用户数据,提供文件夹、表格、仪表盘、表单、镜像、审计、权限服务等功能。 数据表(datasheet)为多个协作成员提供实时协作,以便…

变电站自动化监控系统

力安科技变电站自动化监控系统是以箱式变电站为管理对象&#xff0c;加装箱变网关&#xff0c;在完成箱变智能化改造的基础上&#xff0c;依托电易云&#xff0c;构建一体化智慧箱变及运维系统。智能箱式变电站被广泛应用于住宅小区、城市公用变压器、工厂、商场、机场、电站等…

Java语法中一些需要注意的点(仅用于个人学习)

1.当字符串和其他类型相加时&#xff0c;基本都是字符串&#xff0c;这与运算顺序有关。 2.Java中用ctrl d 来结束循环输入。 3.nextLine() 遇到空格不会结束。 4.方法重载 4.1. 方法名必须相同 4.2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不…

【大数据之Kafka】八、Kafka Broker之生产经验

1 节点服役和退役 1.1 服役新节点 新节点准备&#xff1a; &#xff08;1&#xff09;关闭hadoop104&#xff0c;并右键执行克隆操作。 &#xff08;2&#xff09;开启hadoop105&#xff0c;并修改 IP 地址为105。 vim /etc/sysconfig/network-scripts/ifcfg/ens33&#xff…

Edge官方鼠标手势

前言 日期&#xff1a;2023年8月 Edge浏览器目前已自带官方的鼠标手势功能&#xff0c;若要使用首先将浏览器更新至最新版&#xff0c;下文介绍使用方法。 官方鼠标手势 前提 更新Edge至最新版&#xff0c;并关闭其它鼠标手势扩展。 开启鼠标手势 打开Edge浏览器的设置&…

Linux c++开发-04-让Hello World更像一个工程

外层CMakeLists.txt src中的CMakeLists.txt ADD_EXECUTABLE(hello main.cpp)main.cpp 然后 cd build cmake … make ./bin/hello

TCPIP协议学习

TCP协议 连接导向&#xff1a;TCP是一种面向连接的协议&#xff0c;这意味着通信的两端在建立通信之前必须通过握手过程建立连接。握手过程包括三次握手&#xff0c;其中客户端向服务器发送连接请求&#xff0c;服务器回复确认&#xff0c;最后客户端再次确认连接。这样建立的连…

基于springboot+vue的校园失物招领系统-前后端分离(内含文档+源码+教程)

近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定校园失物招领网站的总体功能模块。然后&#xff0c;详细…

InstructPix2Pix(CVPR2023)-图像编辑论文解读

文章目录 1.摘要2.背景3.算法3.1 生成多模态训练集3.1.1生成指令及成对caption3.1.2 依据成对的caption生成成对的图像 3.2 InstructPix2Pix 4.实验结果4.1基线比较4.2消融实验 5.结论 论文&#xff1a; 《InstructPix2Pix: Learning to Follow Image Editing Instructions》 …

什么是系统集成项目管理工程师,证书难考吗?

系统集成项目管理工程师&#xff0c;属于软考三个级别中的 “中级”&#xff0c;相当于中级职称。 系统集成项目管理程师是工信部和人社部举办的软考中新增开的一门考试。软考全称全国计算机技术与 软件专业技术资格&#xff08;水平&#xff09;考试&#xff0c;这门新开的系…

Nacos配置文件更新+热更新+多环境配置共享+集群搭建

对服务配置文件 场景&#xff1a; 如果多个服务对应的配置文件都需要更改时&#xff0c;可以利用配置管理&#xff0c;方便对配置文件进行更新&#xff0c;而且是在本地配置前先读取nacos的配置文件&#xff0c;优先级大于本地配置文件 配置步骤 1.首先在Nacos中的配置列表中增…

0-5V转4-20mA电路

本设计采用运放与三极管做二线制恒流源电路 分析&#xff1a; Va2*V- (1) (2) (3) 联立&#xff08;2&#xff09;&#xff08;3&#xff09;得&#xff1a; &#xff08;5&#xff09; 由于 &#xff08;6&#xff09; …

【AIGC专题】Stable Diffusion 从入门到企业级实战0403

一、前言 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第03节&#xff0c; 利用Stable Diffusion ControlNet Canny模型精准控制图像生成。本部分内容&#xff0c;位于整个Stable Diffusion生态…

剑指offer(C++)-JZ61:扑克牌顺子(算法-模拟)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 现在有2副扑克牌&#xff0c;从扑克牌中随机五张扑克牌&#xff0c;我们需要来判断一下是不是顺子。 有如…

MyBatisPlus 基础Mapperr接口:增删改查

MyBatisPlus 基础Mapper接口&#xff1a;增删改查 插入一条数据 代码 Testpublic void insert() {User user new User();user.setId(6L);user.setName("张三");user.setAge(25);user.setEmail("zhangsanexample.com");userMapper.insert(user);}日志 数…

postman token 请求头添加

思路&#xff1a; 1、登录成功后将 得到的token设置为集合变量 2、在需要携带Authorization的请求头上使用该集合变量 关键代码 const responseData pm.response.json(); if(responseData.code 1) {// 获取tokenconst {data:{token}} responseData// 设置为集合变量pm.colle…

Java8中List转Map报错“java.lang.IllegalStateException: Duplicate key”

排查思路 从报错的关键字中可以大致判断是是key冲突,Duplicate key在数据库的主键冲突错误中经常遇到&#xff0c;个人的思维惯性就联想到了数据库,从这个方向去排查,无果。抓耳挠腮之下&#xff0c;分析如下错误信息 java.lang.IllegalStateException: Duplicate key image(…

java八股文面试[数据库]——索引哪些情况下会失效

查询条件包含 or&#xff0c;会导致索引失效。 隐式类型转换&#xff0c;会导致索引失效&#xff0c;例如 id字段类型是varchar&#xff0c;我们 where id 1&#xff0c;这样就会触发隐式类型转换 like 通配符会导致索引失效&#xff0c;注意:”ABC%” 不会失效&#xff0c;…