排序算法:n个0~1000之间的整数,将他们从大到小排序

上榜理由:

        如果没见过这种排序题,可能首先想到的就是常用的排序算法,比如快速排序,归并排序,那如果输入的n足够大,时间复杂度肯定比较高。其实题目0-1000的范围是一个题眼,所以一定有更优的排序算法:这里用到了桶排序!

回顾经典排序算法有

  • 冒泡排序(Bubble Sort)
  • 插入排序(Insertion Sort)
  • 希尔排序(Shell Sort)
  • 选择排序(Selection Sort)
  • 快速排序(Quick Sort)
  • 归并排序(Merge Sort)
  • 堆排序(Heap Sort)
  • 计数排序(Counting Sort)
  • 桶排序(Bucket Sort)

思路就是:

首先,0-1000的值域,创建1001个桶,每个桶都对应一个index,里面放一个初始值count=0,表示大小是index的数出现的个数。

然后遍历n个数,就把这1001个桶里的count更新一次,

接着再根据要求从大到小,或者从下到大遍历1001个桶,如果count>0,表示出现过count,就打印count个对应桶index的值,

最后,就完成了排序算法输出!

    //bucket_sort.cpp#include <stdio.h>#include <cstring>int main(){int bucket[1001],i,j,t,n;memset(bucket,0,sizeof bucket);printf("please enter total number = \n");scanf("%d",&n);//输入一个数n,表示接下来有n个数printf("now please enter the data\n");for(i=1;i<=n;i++)//循环读入n个数,并进行桶排序{scanf("%d",&t);  //把每一个数读到变量t中bucket[t]++;  //进行计数,对编号为t的桶放一个小旗子}printf("sort data is: \n");for(i=1000;i>=0;i--)  //依次判断编号1000~0的桶for(j=1;j<=bucket[i];j++)  //出现了几次就将桶的编号打印几次printf("%d ",i);printf("\n");return 0;}

附个编译代码和输出测试

gcc -o test bucket_sort.cpp./test

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

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

相关文章

微信小程序加载动态svg数据图片

微信小程序加载动态svg数据图片 解决方案和步骤1. 获取svg数据2. 对数据进行转码3. 在wxml中使用 微信小程序如何加载动态的svg数据图片&#xff1f; 尝试过多种方式都不可行&#xff1a; 在使用在src以base64方式使用 解决方案和步骤 通过远程服务获取svg图片数据&#xff…

商务助理个人简历10篇

商务助理简历模板下载&#xff08;可在线编辑制作&#xff09;&#xff1a;来幻主简历&#xff0c;做好简历&#xff01; 商务助理简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 意向岗位&#xff1a;国际商务、产品助理 意向城市&#xff1a;广东广州 …

ElasticSearch篇---第一篇

系列文章目录 文章目录 系列文章目录前言一、谈谈分词与倒排索引的原理二、说说分段存储的思想三、谈谈你对段合并的策略思想的认识前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分…

【每日一题】确定两个字符串是否接近

文章目录 Tag题目来源题目解读解题思路与实现方法一&#xff1a;计数 其他语言python3 写在最后 Tag 【计数】【字符串】 题目来源 1657. 确定两个字符串是否接近 题目解读 你可以进行以下两种操作&#xff1a; 操作 1&#xff1a;交换任意两个位置的字符&#xff1b;操作 …

浪涌保护器参数指南:浪涌保护器行业选型方案

浪涌保护器&#xff08;SPD&#xff09;是一种用于限制瞬态过电压和泄放浪涌电流的器件&#xff0c;可有效降低电子设备在雷击、电源故障等情况下受到的损害。其主要作用是当系统发生浪涌时&#xff0c;将过电压、过电流泄放到大地&#xff0c;从而保护设备和人身安全。然而浪涌…

什么是Amazon Lambda(无服务器计算服务)

Lambda 在高可用性计算基础设施上运行代码&#xff0c;用于执行计算资源的所有管理工作。这包括服务器和操作系统维护、容量调配和弹性伸缩、代码和安全补丁部署以及代码监控和日志记录。您只需要提供代码。 最近亚马逊云服务提供了超多免费的云服务&#xff0c;快来领取免费套…

【设计模式】单例模式代码设计

目录 单例模式简介饿汉单例模式懒汉单例模式线程安全的懒汉单例模式 橙色 详细可参考该篇文章&#xff1a;C设计模式 - 单例模式 单例模式简介 单例模式指的是&#xff0c;无论怎么获取&#xff0c;永远只能得到该类类型的唯一一个实例对象&#xff0c;那么设计一个单例就必须…

聊聊部署在不同K8S集群上的服务如何利用nginx-ingress进行灰度发布

前言 之前有篇文章聊聊如何利用springcloud gateway实现简易版灰度路由,里面的主人公又有一个需求&#xff0c;他们有个服务是没经过网关的&#xff0c;而是直接通过nginx-ingress暴露出去&#xff0c;现在这个服务也想做灰度&#xff0c;他知道在同个集群如何利用nginx-ingre…

Git 分支合并时 Merge, Rebase, Squash 的使用场景

前言 Git 的分支设计大大提升了并行开发的能力&#xff0c;但相应的&#xff0c;也就要解决如何进行分支合并。毕竟分久必合&#xff0c;最终还是要把大家的工作合并起来&#xff0c;进行统一发布的。在合并时&#xff0c;通常有三种操作&#xff1a; Merge commitsRebaseSqu…

Vue学习计划--Vue2(二)Vue代理方式

Vue data中的两种方式 对象式 data:{}函数式 data(){return {} }示例&#xff1a; <body><div id"app">{{ name }} {{ age}} {{$options}}<input type"text" v-model"value"></div><script>let vm new Vue({el: …

Linux操作系统之wget下载软件并安装

文章目录 前言一、apt下载二、wget下载1、新建目录存放文件2、根据下载地址使用wget下载安装包3、解压包4、命令指定目录&#xff0c;让其生效如有启发&#xff0c;可点赞收藏哟~ 前言 一般安装可以直接使用apt命令&#xff0c;不过安转的不是最新版本的&#xff0c;且没法指定…

Redis交互速度慢,频繁处理时经常报错 RedisSystemException: RedisException: Connection closed

Redis交互速度很慢&#xff0c;达到几十到一百毫秒一次&#xff0c;且压力测试下经常报错&#xff1a; org.springframework.data.redis.RedisSystemException: Redis exception; nested exception is io.lettuce.core.RedisException: Connection closedat org.springframewo…

西南科技大学C++程序设计实验四(类与对象三)

一、实验目的 1. 理解类的组合定义、说明与使用 2. 参数化列表的使用 3. 组合类的特例——string类 二、实验任务 重点:掌握组合类的定义与实现,丰富类的数据成员与成员函数,拓展其功能。 阅读分析、完善程序。下面是一个组合类 Teacher的定义,数据成员包括代表姓名的…

驱动开发--内核添加新功能

Ubuntu下这个文件为开发板ls命令的结果 内核的内容&#xff1a; mm&#xff1a;内存管理 fs&#xff1a;文件系统 net&#xff1a;网络协议栈 drivers&#xff1a;驱动设备 arch与init&#xff1a;跟启动相关 kernel与ipc&#xff1a;任务&#xff0c;进程相关 向内核增…

python-批量调整指定目录下所有图片文件的大小

前言&#xff1a; 在很多情况下我们都需要调整图片的大小到所需要的尺寸&#xff0c;比如在深度学习中批量调整图片大小可以使得数据预处理更加高效&#xff0c;如果图片过大&#xff0c;训练的时候会比较慢&#xff0c;而且占用内存空间&#xff0c;图片尺寸不一样的情况下&am…

关于mysql字段类型为text还提示类型太短问题

MySQL中的Text字段最大长度 Text字段是MySQL中一种用来存储大量文本数据的数据类型。它能够存储比较大的数据&#xff0c;所以在保存文章详情内容或商品详情内容都会用到&#xff0c;到底有多长呢&#xff1f; Text字段的限制 虽然Text字段能够存储大量的文本数据&#xff0…

Depop自养号下单教程,测评环境、IP与买家资料的关键

Depop是一家总部位于英国伦敦的在线时尚市场和社交媒体平台。该平台于2011年由Simon Beckerman创立&#xff0c;旨在提供一个结合了时尚、创意和社交互动元素的独特购物体验。Depop已经发展成为一个备受欢迎的时尚社交应用&#xff0c;吸引了全球范围内的卖家和购物者。提供了一…

一文读懂3D开发工具HOOPS SDK

前言 Tech Soft 3D是全球领先的3D领域开发工具提供商&#xff0c;可帮助软件团队交付成功的应用程序。Tech Soft 3D成立于1996年&#xff0c;该公司的工具包产品为全球数亿台计算机上运行的近500个独特应用程序提供支持&#xff0c;已经助力SolidWorks、AutoDesk、GrabCAD、CD…

kafka 3.x 学习笔记

kafka 3.x 学习笔记 在 kafka 2.8.0 版本之前&#xff0c;安装使用 kafka 需要配套安装 zookeeper&#xff0c;但在 2.8.0 版本之后&#xff0c;不再需要安装 zookeeper&#xff0c;本次学习笔记采用的 kafka 版本为 3.0.0。 文章目录 kafka 3.x 学习笔记一、kafka 定义1 什么是…

任务管理器快捷键分享!这些知识很有用!

“我刚学习使用电脑没多久&#xff0c;想问问大家任务管理器这个功能有什么用处呀&#xff1f;在使用任务管理器时有什么快捷键能快速进入吗&#xff1f;感谢解答&#xff01;” 在日常使用电脑的过程中&#xff0c;我们经常需要打开任务管理器来进行一些操作。而掌握任务管理器…