笨人小白的温故知新——排序(3)

c语言:数列排序 题目:蒜头君给了一个长度为N(不大于500)的正整数序列(正整数的值不超过N),请将其中的所有奇数取出,并按升序输出。 输入格式 共2行: 第1行为N; 第2行为N个正整数,其间用空格间隔。 输出格式 增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。 【错误示例】 只是输出了500内的所有奇数,不符合题目的数列中提取奇数并排序 # include <stdio.h> int main(){ int i; for(i=1;i&lt... 阅读详情

我来啦!今天依旧是1177:奇数单增序列的一题多解。

(不厌其烦地附上题目)

【题目描述】

给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。

【输入】

第1行为 N;

第2行为 N 个正整数,其间用空格间隔。

【输出】

增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

【输入样例】

10
1 3 2 6 5 4 9 8 7 10

【输出样例】

1,3,5,7,9

方法四:冒泡排序

我在大佬源代码的基础上,将q[j]与q[j+1]的复制与赋值换成了swap()函数!嘻嘻,我会a little bit举一反三了!

这个flag是用来判断当前数组是否已经有序的,其实没有flag也不影响理解哒!

#include <iostream> 
#include <algorithm>

using namespace std ;
void bubblesort(int q[] , int n){
	for(int i = 0 ; i < n - 1 ; i ++){
		bool flag = true ;
//用一个flag来判断当前数组是否已经有序,有序则推退出循环 
		for(int j = 0 ; j < n - 1 ; j ++){
			if(q[j] > q[j+1]){
				swap(q[j] , q[j+1]) ;
				flag = false ;
			}
		}
		if(flag)	break ;
	}
}
int main(){
	int n , len , k = 0 ; cin >> n ;
	len = n ;
	int* a = new int[n] ;
	while(n --)	scanf("%d" , &a[k++]) ;
	bubblesort(a , len) ;
	
	int first = 1 ;
	for(int i = 0 ; i < len ; i ++){
		if(a[i] % 2 == 1){
			if(first == 1){
				first = 0 ;
				printf("%d", a[i]) ;
				continue ;
			}
			else
				printf(",%d" , a[i]) ;	
		}	
	}
	return 0 ;
}

方法五:希尔排序

看了希尔排序的动画后,就觉得这玩意儿 和插入排序怎么那么像,看到它的模板代码后发现,这俩真的超级像!

希尔排序比插入排序多的一个地方是增量gap。希尔排序每次都选择gap/2作为它的步长(初始的gap为n/2),根据这个步长分组进行排序,使得每次排序的工作量都比较小。

#include <iostream> 
#include <algorithm>

using namespace std ;
void shellsort(int q[] , int n){
	for(int gap = n/2 ; gap >= 1 ; gap/=2){
		for(int i = gap ; i < n ; i += gap){
			int temp = q[i] ;
			int pre = i - gap ;
			while(pre >= 0 && q[pre] > temp){
				q[pre+gap] = q[pre];
				pre -= gap ;
			}
			q[pre + gap] = temp ;
		}
	}
}

int main(){
	int n , len , k = 0 ; cin >> n ;
	len = n ;
	int* a = new int[n] ;
	while(n --)	scanf("%d" , &a[k++]) ;
	shellsort(a , len) ;
	
	int first = 1 ;
	for(int i = 0 ; i < len ; i ++){
		if(a[i] % 2 == 1){
			if(first == 1){
				first = 0 ;
				printf("%d", a[i]) ;
				continue ;
			}
			else
				printf(",%d" , a[i]) ;	
		}	
	}
	return 0 ;
}

方法五:选择排序

#include <iostream> 
#include <algorithm>

using namespace std ;
void selectionsort(int q[] , int n){
	for(int i = 0 ; i < n ; i ++){
		int min = i ; 
		for(int j = i+1 ; j < n ; j ++){
			if(q[j] < q[min])
				min = j ;
		}
		int temp = q[min] ;
		q[min] = q[i] ;
		q[i] = temp ;
	}
}

int main(){
	int n , len , k = 0 ; cin >> n ;
	len = n ;
	int* a = new int[n] ;
	while(n --)	scanf("%d" , &a[k++]) ;
	selectionsort(a , len) ;
	
	int first = 1 ;
	for(int i = 0 ; i < len ; i ++){
		if(a[i] % 2 == 1){
			if(first == 1){
				first = 0 ;
				printf("%d", a[i]) ;
				continue ;
			}
			else
				printf(",%d" , a[i]) ;	
		}	
	}
	return 0 ;
}

信息学奥赛一本通C++语言——1177:奇数单增序列 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。结合结构体与排序,非常简单的题目,直接上代码,只是最后的‘,’需要注意一。增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。第2行为 N 个正整数,其间用空格间隔。 阅读详情

相关推荐

c++编程--奇数单增序列

编程c++

1177:奇数单增序列

1177:奇数单增序列 【题目描述】 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。

Song331的博客 4459

NOIP2008年普及组初赛题目答案及解析

NOIP2008年初赛详细题解

城南蝈蝈 927

NOI / 1.10编程基础之简单排序 02:奇数单增序列

02:奇数单增序列 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。 输入 共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。 输出 增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。 样例输入 10 1 3 2 6 5 4 9 8 7 10 样例输出 1,3,5,7,9 思路:先按要求输入 n,再将数..

qq_60642811的博客 2336

uniapp map地图实现marker聚合点,并点击marker触发事件

【代码】uniapp map地图实现marker聚合点,并点击marker触发事件。

weixin_44705979的博客 5437

centos7下安装gcc-10.3.0

生成多个系统版本的代码,如果你的操作系统是32位,默认就已经设置为 disable,这时gcc仅能生成32位的可执行程序;这里只开启了c,c++ 和fortran,因为支持的语言越多,就需要安装越多的相应静态与动态库,还有五花八门的依赖库,这会让管理变得困难,体积也会变得庞大。启用posix标准的线程支持,这个设置取决于宿主或目标操作系统的类型,其它可用值有:aix,dec,solaris,win32等,如果你是其它的类UNIX系统,就需要设置相应的值。指定安装路径,这里没有指定,就直接放到文件夹里就好。

lxystar2003的博客 1189

笨人小白的温故知新——排序(1)

这次,我来分享一下我新学习的!网上有很多大佬整理了归并排序,并且超级厉害的做了动图。就是这个大佬的下面我想回顾总结一下我现在对归并排序的认识与理解,并且把它融入这道题中。

Ruially的博客 601

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7938

笨人小白的温故知新——排序(2)

这是一个一题多解的博客!题目描述】给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。【输入】第1行为 N;第2行为 N 个正整数,其间用空格间隔。【输出】增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】10【输出样例】1,3,5,7,9方法一:插入法这就是插入法的代码模板。它的原理很简单,就是以一个乱序的数组中的第一个数为基石,通过后面的数与前面的数字比较,将数字逐一为它们找到自己的位置。

Ruially的博客 377

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 283

【补充篇】三万字了解AUTOSAR软件架构(一)

主要讲解了AUTOSAR软件架构的分层及各个栈的作用

weixin_47571898的博客 1120

笨人小白的温故知新——二分法(1)

今天,通过B站的视频,解决了我对于区间的开闭的问题。下面,我通过下面一道题来回顾一下。

Ruially的博客 602

推荐系统[九]项目技术细节讲解z2:搜索Query理解[Term Weight、Query 改写、同义词扩写]和语义召回技术

在 pooling 方法上,我们也尝试过不同层 pooling,或者在多层上增加 attention 聚合 BERT 多层结果,效果和最后一层所有 token 做 average pooling 相当。损失函数方面,在排序阶段使用pairwise比 pointwise 损失函数的效果会更好。

丨汀、的博客 1109

信息学奥赛一本通 1177:奇数单增序列 数据排序

给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。时间限制: 1000 ms 内存限制: 65536 KB。增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。解析:输入数字的时候过滤一下,只保存奇数,然后排序,输出;输出的时候要注意因为用逗号间隔,最后一个数字后边没有逗号;第2行为 N 个正整数,其间用空格间隔。1177:奇数单增序列。

长春高老师编程 2214

北斗导航 | 卫星导航接收机原理(基础)

卡尔曼滤波,最小二乘,伪距,芯片,模组,接收机,捕获,跟踪,RTK,RTD,PPP,SPP,多普勒,DOP,灵敏度,热启动,冷启动,PNT,北斗发展,MEO,IGSO,GEO,ICD,导航电文,载波,载噪比

尘世冰封的专栏 2343

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

奇数单增序列

奇数单增序列,有AC码,有拓展 部分转载

guagua290290的博客 419

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

奇数单增序列(C语言)

题目 奇数单增序列 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。 输入 共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。 输出 增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。 样例输入 10 1 3 2 6 5 4 9 8 7 10 样例输出 1,3,5,7,9 解题思路: 先通过判断,将键盘读入的奇数存入到一维数组内,然后再利用冒泡排序将数组进行排序,在输出数组时一定要考虑数...

shadowland_L的博客 5926

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

#9. 奇数单增序列

题目描述给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。输入格式共2行:第1行为 N;第2行为 N 个正整数,其间用空格间隔。输出格式增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。样例inputoutput1,3,5,7,9。

lizhuoqun111的博客 632

1.10编程基础之简单排序——02:奇数单增序列

1.10编程基础之简单排序——02:奇数单增序列

Michael-Shao的博客 860

c++习题36-奇数单增序列

给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。输入描述第1行为 N;第2行为 N 个正整数,其间用空格间隔。输出描述增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。用例输入 1用例输出 11,3,5,7,9。

干就完了 793

C语言 奇数单增序列

增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。)的正整数序列,请将其中的所有奇数取出,并按升序输出。个正整数,其间用空格间隔。

2302_80547909的博客 511

1035:等差数列末项计算(题目来源信息奥赛一本通官网)

1035:等差数列末项计算 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 38548 通过数: 29167 【题目描述】 给出一个等差数列的前两项a1,a2 ,求第n 项是多少。 【输入】 一行,包含三个整数a1,a2,n 。−100≤a1,a2≤100,0<n≤1000 。 【输出】 一个整数,即第n 项的值。 【输入样例】 1 4 100 【输出样例】 ...

Deco00ffcc的博客 753
上一篇: 笨人小白的温故知新——排序(2)
下一篇: 笨人小白的温故知新——二分法(1)
Ruially
博客等级 码龄1年 60粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值