奇数位于偶数前面O(n)
来源:互联网 发布:centos 7 yum iso 编辑:程序博客网 时间:2024/06/08 06:10
题目:输入一个整数数组,实现一个函数来调整该数组中的数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
思路一:直接从头开始遍历,遇到偶数然后将后面的数全部向前移动,把这个偶数放到数组的最后。该方法使用的思想类似于冒泡算法:将偶数下沉。其时间复杂度相对较高O(n^2)
思路二:从排序的思路上学来的,一个标记数组头部,一个标记数组尾部。头部向后移动遇到偶数停止移动,尾部向前移动遇到奇数停止,然后交换两个数,依次下去,直到头部的标记大于或者等于尾部的标记便停止。相当于只将数组遍历了一遍便完成了任务。时间复杂度比思路一要低。
思路二的代码:
public static void SortNums(int[] nums,int low,int high) {while(low<high) {while(low<high && nums[low]%2 == 1 ) {low += 1;}while(low<high && nums[high]%2 == 0) {high -= 1;}int temp = nums[low];nums[low] = nums[high];nums[high] = temp;}}public static void main(String[] args) {// TODO Auto-generated method stubint[] nums = {1,2,3,4,5,6,7,8,9,0};SortNums(nums,0,9);for (int i = 0; i < nums.length; i++) {System.out.print(nums[i]+" ");}System.out.println();}}
阅读全文
0 0
- 奇数位于偶数前面O(n)
- o(n)解决问题:调整数组顺序是奇数位于偶数的前面
- 剑指offer 3.3 代码的完整性4-在O(n)时间内调整数组顺序,使奇数位于偶数前面
- 调整数组使奇数位于偶数前面
- 奇数位于偶数前面且顺序不变
- 调整数组使奇数位于偶数前面
- 《剑指offer》--- 在O(1)时间内删除链表结点 和 调整数组顺序使得奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面--总结
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面[
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- TensorFlow实现卷积神经网络
- 【华为机试】求解立方根
- Struts2的标签库整理
- 汇总前端最最常用的JS代码片段-你值得收藏
- Solr安全管理
- 奇数位于偶数前面O(n)
- 深入浅出UML类图(二)
- 自定义组装控件
- idea + scala + maven/sbt环境配置
- Order By文件排序和索引排序
- BroadcastReceiver&&IntentFilter&&NetWorkChangeState
- 类数据与函数的关系
- 四大组件的匹配过程
- XML总结