算法题/调整数组顺序使奇数位于偶数前面
来源:互联网 发布:c语言入门经典程序 编辑:程序博客网 时间:2024/05/19 00:08
python2.7
:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位予数组的后半部分。
这个题目要求把奇数放在数组的前半部分, 偶数放在数组的后半部分,因此所有的奇数应该位于偶数的前面。也就是说我们在扫描这个数组的时候, 如果发现有偶数出现在奇数的前面,我们可以交换它们的顺序,交换之后就符合要求了。
因此我们可以维护两个指针,第一个指针初始化时指向数组的第一个数字,它只向后移动:第二个指针初始化时指向数组的最后一个数字, 它只向前移动。在两个指针相遇之前,第一个指针总是位于第二个指针的前面。如果第一个指针指向的数字是偶数,并且第二个指针指向的数字是奇数,我们就交换这两个数字。
#coding:utf-8def transfer(a): k = 0 p = len(a)-1 t = 0 while k != p: if a[k] % 2 == 0: while a[p] % 2 ==0: p -= 1 t = a[k] a[k] = a[p] a[p] = t k +=1 return aif __name__ == '__main__': a = [0,1,2,3,4,5,6,7,8,9] print(transfer(a))
二
#coding:utf-8def adjust_arr(a): left = 0 right = len(a)-1 k = 0 while left < right: if (a[left] % 2 == 0 and a[right] % 2 !=0): k = a[right] a[right] = a[left] a[left] = k left += 1 right -= 1 return a#print(adjust_arr([2,4,6,8,10,1,3,5,7,9]))print(adjust_arr([0,1,2,3,4,5,6,7,8,9]))
阅读全文
0 0
- 算法题/调整数组顺序使奇数位于偶数前面
- 算法题目---调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- 剑指offer-算法题练习:part15 调整数组顺序使奇数位于偶数前面
- 每天一道算法题——调整数组顺序使奇数位于偶数前面
- 【数组3】-调整数组顺序使奇数位于偶数前面
- 数组3:调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面--总结
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面[
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 如何画思维导图?
- CentOS7环境安装MySQL
- Scala基础入门(十二 ) Scala 模式匹配
- SQL数据库
- Gulp介绍
- 算法题/调整数组顺序使奇数位于偶数前面
- struts-标签的使用(二)
- 树的点分治(HDU 5977 && 2016ICPC大连 G: Garden of Eden)
- 并查集入门--hd 1272 小希的迷宫 并查集判断环
- 牛客网-身份证分组
- nyoj 42一笔画问题
- Java中的String为什么是不可变的? — String源码分析
- 【HDUOJ2063】 过山车(最大匹配数,匈牙利算法,模板题)
- marquee插件水平滚动字幕循环滚动