奇偶排序
来源:互联网 发布:mac表格使用教程 编辑:程序博客网 时间:2024/05/18 03:02
描述 :
有一个数组,要求你把奇数都放到数组的左边,偶数都放到数组的右边。设计一种时间较少,空间也较少的”排序”算法。
解决:
可以参考快排的思想。我们设置两个指针,
left = 0, right = n - 1;
,left
向右走,遇到偶数停下来;right
向左走,遇到奇数停下来。然后交换这两个指针所在位置的数,直到两个指针相等跳出。这样的时间复杂度O(n) ,空间复杂度O(1) .
Code :
void sort(int a[], int n){ int left = 0, right = n - 1; while (left < right) { for (;left < right && a[left] % 2 == 1; left++); for (;left < right && a[right] % 2 == 0; right--); if (left < right) swap(a[left], a[right]); }}
0 0
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 奇偶排序
- 【基础排序】奇偶排序
- 使用qt编译webrtc遇到的问题。
- 初学Hadoop之WordCount词频统计
- android音频编辑(裁剪,合成)(2)
- 常见DB2锁等待解决流程
- LeetCode 90. Subsets II
- 奇偶排序
- 位图排序
- 大数据Hadoop
- Lua中的环境概念
- 剪邮票
- 【vue.js】子组件的参数值不随着父组件值的改变而改变
- Laravel- Auth登录验证
- 在listview嵌套listview 并且想实现点击其中一个item隐藏item的内容
- 小萨的烦恼