满足奇数位为奇数或偶数位为偶数算法
苏大真题:给定一顺序线性表,使其满足奇数位为奇数或偶数位为偶数。
本题源于苏州大学872考研真题(2010.5)
给定一个整型元素组成的顺序线性表,设计一个高效的算法重新排列表中的元素,使得偶数位序的元素为偶数或者奇数位序的元素为奇数;即:使得这两个目标至少有一个能满足。
算法思想:设置两个指针i、j,分别指向该顺序表的奇偶位序的第一位,i指针向后寻找第一个奇数位序上的偶数(该过程也是检查奇数位上是否为奇数),j指针向后寻找第一个偶数位序上的奇数。若均存在,则交换两位元素,若任意指针越界,则返回(此时已满足条件,即奇数位均为奇数或偶数位均为偶数)。
代码如下:
void move(SqList &L){int i=0,j=1;while(1){while(L.data[i]%2==0||i>L.length) i+=2;while(L.data[j]%2==1||j>L.length) j+=2;if(i>L.length||j>L.length) break;else exchange(L.data[i],L.data[j]); }
}
算法缺点:该算法会导致奇数(或偶数)间的相对次序。例如数列2、4、5、7,交换后变为7、4、5、2,奇数间的相对顺序5->7变为了7->5.
满足奇数位为奇数或偶数位为偶数算法相关推荐
- 【C语言】用宏实现将一个整数的二进制位的奇数位和偶数位交换
题目名称 :写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换. 解题思路 : 随便给出一个32个bit位的二进制数字,观察发现,: 我们可以将其奇数位的二进制位都保留,然后偶数位制成0,再右移一 ...
- 基础编程题之奇数位(偶数位)都是奇数(偶数)
文章目录 题目 解题思路 代码 注意 题目 牛客 解题思路 题目的意思是给定一个数组arr,让你调整它,最终这个数组必须满足奇数位上的数字必须是奇数,偶数位上的数字必须是偶数,其中1,3,5,7-算作 ...
- 奇数位升序偶数位降序链表排序
题目描述:一个链表,奇数位升序偶数位降序,让链表变成升序的. 比如:1 8 3 6 5 4 7 2 9,最后输出1 2 3 4 5 6 7 8 9. 分析: 这道题可以分成三步: 首先根据奇数位和偶数 ...
- 奇数位升序偶数位降序的链表进行排序
题目描述:一个链表,特点是奇数位升序偶数位降序,使得链表变成升序的. 分析 代码 节点类: main方法: 初始化方法: 按照奇偶位拆分成两个链表: 反转链表: 合并两个有序链表(非递归): 合并两个 ...
- 题目:输入一个整数a,其个位为第一位,十位为第二位,依次类推,计算a的偶数位的和奇数位的和。
题目: 输入一个整数a,其个位为第一位,十位为第二位,依次类推,计算a的偶数位的和奇数位的和.例如200628,奇数位的和为8+6+0=14:偶数位的和为2+0+2=4.函数原型可参考此形式:void ...
- 奇半数、偶半数—(N的奇半数就是N的奇数位组成的数,N的偶半数就是N的偶数位组成的数(从右侧开始数))
输入一个正整数N(long long型范围内),输出N的奇半数和偶半数.N的奇半数就是N的奇数位组成的数,N的偶半数就是N的偶数位组成的数(从右侧开始数),例如:1234567的奇半数是1357,偶半 ...
- 数组-奇数位上都是奇数或者偶数位上都是偶数(牛客网)
题目描述: 给定一个长度不小于2的数组arr. 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上. 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复 ...
- 写一个宏,可以将一个整数字的奇数位和偶数位交换
写一个宏,可以将一个整数字的奇数位和偶数位交换 1.过程 2.预处理 3.宏和函数 4.交换奇偶位 1.过程 (1)组成一个程序的每个源文件通过编译过程分别转换成目标代码 (2)每个目标文件由链接器捆 ...
- C语言中利用宏,实现一个整数的奇数位和偶数位交换,以及计算结构体中某变量相对于首地址的偏移
C语言中的自定义宏 自定义宏,令其实现所需功能 1.写一个宏,可以将一个整数字的奇数位和偶数位交换. 2.写一个宏,计算结构体中某变量相对于首地址的偏移. 具体思路1: 首先取出当前数的奇数部分和偶数 ...
最新文章
- 69.2. wget - retrieves files from the web
- aes key长度_Go 语言 map 解析之 key 的定位核心流程
- tp5中mysql使用REGEXP 正则匹配
- 手语识别_使用深度学习进行手语识别
- linux替换windows回车,转载 vi替换windows换行符为linux换行符
- 赚钱第一,投资第二,才是正确的财富获取方式
- 数据分析师还是算法工程师|用数据多角度解读如何选择
- 无锡室内设计培训——ps难学吗?
- 硬链接、软链接、ln命令
- v-if 和 v-show的区别 vue面试题
- 什么才算是“好的”测试用例?
- 第十七届中国计量大学程序设计竞赛 D	Dessert Time
- AlphaStar的游戏——星际争霸2 AI综述
- HTML+CSS(精灵图)实现微信滑动门技术
- 凡科建站,PageAdmin,易极赞等自助建站系统的区别
- C——Linux下的串口编程
- 微博API接口的调用
- 从带宏密码保护的Excel文件中导出VBA代码和Sheet
- 一个页面引入另一个页面
- 完美天空下载站php程序,织梦CMS高仿天空软件站|软件下载站源码整站带数据
热门文章
- 常用的HTTP服务压测工具
- h5页面置灰处理源代码,兼容IE(优雅降级提供下载浏览器链接)
- 从零开始带你开发橙光游戏AVG框架(仿 葬花 )
- Oracle 查最后一条记录
- springboot私人牙医管理系统[保远程安装配置]
- 【Linux】多用户原理 - 用户分类、用户组、uid、gid、主目录
- 如何实现一个简单的网络帧同步方案
- 计算机组装要哪些硬件,电脑配件,教您电脑组装需要哪些配件
- 信号隔离器在供热控制系统中的应用
- pyppeteer出现AttributeError: module ‘websockets‘ has no attribute ‘client‘