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

文章目录

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

前言

(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;     //初始化一维数组为0for (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;     //初始化一维数组为0for (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.mzph.cn/news/71245.shtml

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

相关文章

9.4 校招 内推 面经

绿泡*泡&#xff1a; neituijunsir 交流裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 航天科工二院2024校招 校招 | 航天科工二院2024校招 2、校招 | 中国航空无线电电子研究所2024届校招 校招 | 中国航空无线电电子研究所2024届校招 3、校招 | 南京841研究所2024届校…

Elasticsearch安装,Springboot整合Elasticsearch详细教程

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎&#xff0c;能够实现近乎实时的搜索。 Elasticsearch官网https://www.elastic.co/cn/ 这篇文章主要简单介绍一下Elasticsearch&#xff0c;Elasticsearch的java API博主也在学习中&#xff0c;文章会持续更新~ …

把握市场潮流,溯源一流品质:在抖in新风潮 国货品牌驶过万重山

好原料、好设计、好品质、好服务……这个2023&#xff0c;“国货”二字再度成为服饰行业的发展关键词。以消费热潮为翼&#xff0c;越来越多代表性品类、头部品牌展现出独特价值&#xff0c;迎风而上&#xff0c;在抖音电商掀起一轮轮生意风潮。 一个设问是&#xff1a;在抖音…

无需设计经验,也能制作出精美的房地产电子传单

在数字化时代&#xff0c;传统的纸质传单已经不能满足人们对于互动和个性化的需求。为此&#xff0c;许多房地产公司开始将目光转向H5微传单&#xff0c;这是一种通过互联网和手机浏览器来传达信息的创新方式。今天&#xff0c;我们将教你如何使用乔拓云网制作房地产微传单H5&a…

Web服务器部署上线踩坑流程回顾

5月份时曾部署上线了C的Web服务器&#xff0c;温故而知新&#xff0c;本篇文章梳理总结一下部署流程知识&#xff1b; 最初的解决方案&#xff1a;https://blog.csdn.net/BinBinCome/article/details/129750951?spm1001.2014.3001.5501后来的解决方案&#xff1a;https://blog…

算法通关村第十二关——不简单的字符串转换问题

前言 字符串是我们在日常开发中最常处理的数据&#xff0c;虽然它本身不是一种数据结构&#xff0c;但是由于其可以包含所有信息&#xff0c;所以通常作为数据的一种形式出现&#xff0c;由于不同语言创建和管理字符串的方式也各有差异&#xff0c;因此针对不同语言特征又产生…

阿里云2核2G云服务器租用价格表_一年费用_1个月和1小时收费

阿里云2核2G服务器多少钱一年&#xff1f;108元一年&#xff0c;折合9元一个月&#xff0c;配置为2核CPU、2G内存、3M带宽、50GB高效云盘的轻量应用服务器&#xff0c;如果是云服务器ECS&#xff0c;2核2G配置可以选择ECS通用算力型u1实例、突发性能实例t6和t5实例、密集计算型…

如何使用HTML和CSS创建动画条形图?

概述 动画栏是使用 HTML 和 CSS 创建的图形动画栏。动画栏的布局是使用 HTML 创建的&#xff0c;栏的样式是使用 CSS 制作的。普通的条形图可以正常创建&#xff0c;但我们必须创建带有动画的条形图&#xff0c;因此我们将使用 CSS 过渡动画属性来使其具有动画效果。我们将构建…

03-zookeeper节点动态上下线案例

服务器动态上下线监听案例 需求 在分布式系统中&#xff0c;主节点可以有多台&#xff0c;可以动态上下线&#xff0c;任意一台客户端都能实时感知到主节点服务器的上下线。 需求分析 客户端能实时洞察到服务器上下线的变化 基本流程&#xff1a; ​ 1.服务端启动时去注册…

300. 最长递增子序列

题目描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示…

一米facebook功能点

用户信息批量修改 可批量修改已登录用户的头像、密码、个人说明等信息。 小号批量刷赞、评论 可以批量用facebook小号给帖子、主页等刷赞或评论。 直播帖刷人气/评论/分享 可以直接刷直播帖子的人气、评论&#xff0c;并可一键分享到小组或个人时间线、公共主页等。 小组成员…

【Java】Java核心API概述

Java核心API是Java编程语言的基础&#xff0c;包含了Java应用程序中常用的类和接口。本文将介绍Java核心API中的一些重要部分&#xff0c;包括输入输出流、异常处理、集合框架、多线程和网络编程等。 1、输入输出流 Java的输入输出流API是Java IO&#xff0c;它提供了处理输入…

使用Apache Doris自动同步整个 MySQL/Oracle 数据库进行数据分析

Flink-Doris-Connector 1.4.0 允许用户一步将包含数千个表的整个数据库&#xff08;MySQL或Oracle &#xff09;摄取到Apache Doris&#xff08;一种实时分析数据库&#xff09;中。 通过内置的Flink CDC&#xff0c;连接器可以直接将上游源的表模式和数据同步到Apache Doris&…

ChatGPT AIGC 完成超炫酷的大屏可视化

大屏可视化一直各大企业进行数据决策的重要可视化方式,接下来我们先来看一下ChatGPT,AIGC人工智能帮我们实现的综合案例大屏可视化效果: 公众号:BI智能数据分析 像这样的大屏可视化使用HTML,JS,Echarts就可以来完成,给ChatGPT,AIGC发送指令的同时可以将数据一起发送给…

如何实现小程序与h5页面间的跳转

接到新需求&#xff0c;要在小程序页面内点击按钮实现跳转h5&#xff0c;一开始没接触过&#xff0c;还挺头疼的&#xff0c;但真正做起来&#xff0c;也就那么一回事啦&#xff0c;废话少说&#xff0c;直接上 1. 配置域名 先登录小程序开发平台&#xff0c;将页面需要跳转的…

英语语法笔记

1.英语五大句型 主谓&#xff08;主语动词&#xff09; 主谓宾&#xff08;主语动词宾语&#xff09; 主谓宾宾&#xff08;主语动词简接宾语直接宾语&#xff09; 主谓宾补&#xff08;主语动词宾语宾语补语&#xff09; 主系表&#xff08;主语系动词主语补语&#xff09; 1…

掌握Python编程:从入门到精通的完整指南

Python是一门流行的编程语言,适用于多种应用领域,包括Web开发、数据分析、人工智能、机器学习等。以下是一个Python入门的大纲,适用于初学者: 第一部分:基础概念 1. Python简介 Python的历史和发展Python的优点和应用领域2. 安装Python 下载和安装Python配置Python开发环…

Java反序列化之CommonsCollections CC1链分析

前言 cc链的研究可以说是非常适合java代码审计的入门篇了&#xff0c;十分考验java代码功力&#xff0c;其实也是基础功&#xff0c;跨过了这个门槛&#xff0c;在看看其他业务代码就会比较轻松了。不要说代码难&#xff0c;看不懂&#xff0c;作者也是刚入门java没几个月的小…

【C++】STL-常用算法-常用查找算法

0.前言 1.find #include <iostream> using namespace std;// 常用查找算法 find #include<vector> #include<algorithm>//查找 内置数据类型 void test01() {vector<int>v;for (int i 0; i < 10; i){v.push_back(i);}//查找 容器中 是否有 5 这个元…

MySQL 存储引擎,你了解几个?

引言 MySQL是一种流行的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它支持多种不同的数据库引擎。数据库引擎是用于存储、管理和检索数据的核心组件&#xff0c;它们直接影响着数据库的性能、可靠性和功能&#xff0c;接下来本文介绍下一些常见的MySQL数据…