将一个数组里面的奇数全部排在前面,偶数排在后面
2017-01-18 12:54
615 查看
将一个数组里面的奇数全部排在前面,偶数排在后面
方法1:使用数组。
方法2:使用链表,只是写了部分主要的代码,仅做参考
bool isEven(int n)//判断偶数
{
return (0 == n&1);
}
void Odd-Even(int *p, int len)
{
Odd-Even-EX(p, len, isEven);
}
void Odd-Even-EX(int *p, int len, bool (*func)(int))
{
if ((NULL == p) || (0 >= len))
{
return ;
}
int *pBegin = p;
int *pEnd = p + len - 1;
while (pBegin < pEnd)
{
while ((pBegin < pEnd) && !func(*pBegin))
{
pBegin++;
}
while ((pBegin < pEnd) && func(*pEnd))
{
pEnd--;
}
if (pBegin < pEnd)
{
int tmp = *pBegin;
*pBegin = *pEnd;
*pEnd = tmp;
}
}
}
方法1:使用数组。
void paixu(int dest[], int n, int src[]) { int i = 0, m = n-1, k = 0; if (0 >= n) { return ; } for (i = 0; i < n; i++) { if (0 != (src[i] % 2))///奇数 { dest[k] = src[i]; k ++; } else { dest[m] = src[i]; m --; } }
方法2:使用链表,只是写了部分主要的代码,仅做参考
bool isEven(int n)//判断偶数
{
return (0 == n&1);
}
void Odd-Even(int *p, int len)
{
Odd-Even-EX(p, len, isEven);
}
void Odd-Even-EX(int *p, int len, bool (*func)(int))
{
if ((NULL == p) || (0 >= len))
{
return ;
}
int *pBegin = p;
int *pEnd = p + len - 1;
while (pBegin < pEnd)
{
while ((pBegin < pEnd) && !func(*pBegin))
{
pBegin++;
}
while ((pBegin < pEnd) && func(*pEnd))
{
pEnd--;
}
if (pBegin < pEnd)
{
int tmp = *pBegin;
*pBegin = *pEnd;
*pEnd = tmp;
}
}
}
相关文章推荐
- 将数组里面的奇数全部排在前面,偶数排在后面
- 将数组里面的奇数全部排在前面,偶数排在后面
- //1.调整数组使奇数全部都位于偶数前面。 //题目: //输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 给定一个数组,奇数全排在前面,偶数全排在后面
- 剑指offer第4题 把空格替换成20% 剑指offer第14题 让一个数组中奇数位与前面,偶数位与后面
- 关于要让一个数组的奇数全部位于偶数前面(三个while循环思想)
- 课堂提问(C语言):输入10个整数到一个数组,将奇数放在数组前面,偶数放在数组后面,然后输出整个数组。
- 算法题:将一个数组中所有奇数放前面和偶数放后面(不开辟新的内存空间)
- 写一个函数,把数组里的奇数放前面。偶数放后面。比如[1, 2, 3, 4, 5],处理后得到[1, 3, 5, 2, 4]。
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 一个字符串,把奇数放到数组前面,奇数放到数组后面
- 调整数组使奇数全部都位于偶数前面
- 调整数组使奇数全部都位于偶数前面
- 调整数组使奇数全部都位于偶数前面
- 1.调整数组使奇数全部都位于偶数前面。
- 调整数组使奇数全部都位于偶数前面
- 调整数组使奇数全部都位于偶数前面。
- 将数组中奇数都放前面,偶数都放在后面
- 【C语言】【面试题】【笔试题】调整数组使奇数全部都位于偶数前面