7、代码的完整性——调整数组顺序使奇数位在前偶数位在后(python版)
2023-09-11 14:20:01 时间
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1、遍历算法
使用一个列表变量存数,先按顺序存奇数,再按顺序存偶数
class Solution:
def reOrderArray(self, array):
# write code here
# 1 2 3 4 5 6 7 8 9
# 1 3 5 7 9 2 4 6 8
# space complexity O(n)
# time complexity O(n)
ret = []
for i in array:
if i % 2 == 1:
ret.append(i)
for i in array:
if i % 2 == 0:
ret.append(i)
return ret
时间复杂度O(n),空间复杂度O(n)
2、冒泡排序
知识点讲解参考:
三分钟彻底理解冒泡排序 - stone1234567890 - 博客园
class Solution:
def reOrderArray(self, array):
# write code here
# 1 2 3 4 5 6 7 8 9
# 1 3 5 7 9 2 4 6 8
# bubble_sort
# time complexity O(n^2)
# space complexity O(1)
# 这里不论是len(array)还是len(array)-1都可以,区别是是否再对比最后一个, 之前的n-1排完后,最后一个已经确定运不运行结果都是相同的
for i in range(len(array)-1):
for j in range(len(array)-i-1):
if array[j] % 2 == 0 and array[j+1] % 2 ==1:
array[j],array[j+1] = array[j+1],array[j]
return array
平均时间复杂度为O(n2),最优为O(n2),最坏为O(n2)
空间复杂度为O(1),最优为O(0),最坏为O(n)
相关文章
- Python 日期和时间_python 当前日期时间_python日期格式化
- Centos 6.4 安装Python 2.7 python-pip
- 一些Python中的二维数组的操作方法
- Python实现字符串与数组相互转换功能示例
- 华为OD机试 - 等和子数组最小和(Java & JS & Python)
- Python语言学习:python语言代码调试—异常处理之详细攻略
- Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断
- Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
- Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略
- 【python代码】:能在手机上敲 Python 代码几款App
- 〖Python零基础入门篇(56)〗- Python的加密模块 - hashlib 与 base64
- 用python对美女内容采集,舞蹈区内容真热闹~
- python multiprocessing Pool 进程池内存上涨问题解决方法
- Python学习90:UDP编程
- 【华为机试真题 Python实现】树形目录操作【2022 Q1 Q2 |200分】
- 【华为机试真题 Python实现】数组的转换
- 【华为机试真题 Python实现】水果搬运问题
- 【LeetCode Python实现】33. 搜索旋转排序数组(中等)
- Python编程:twine模块打包python项目上传pypi
- python sys.stdin、sys.stdout和sys.stderr
- python图像三维数组理解
- Python编程语言学习:python中浅复制/深复制(或浅拷贝/深拷贝)的简介、案例应用注意事项之详细攻略