算法,算法还是算法002

勿腻阳 2009-09-20 11:32:36
有一数组int[] intNum = new int[n];数组中只有奇偶两种类型的数据。
求一算法使得数组中的基数全部排在偶数的前面。
请写明思路并用C#语言写出一个具体的程序。
请高手赐教,唯有送分以表谢意!
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
PeacefulBY 2009-09-20
  • 打赏
  • 举报
回复
一个头指针一个尾指针,头指针向后扫描尾指针向前扫描,如果头指针指向偶数而尾指针指向奇数则交换两数,两指针相遇则结束
wuyi8808 2009-09-20
  • 打赏
  • 举报
回复
这样也可以:
using System.Collections;

class Program
{
static void Main()
{
int[] intNum = { 7,5,5,6,1,2,3,5,11 };
System.Array.Sort(intNum, new MyIntComparer());

// 现在, 在 intNum 中, 奇数全部排在偶数的前面
foreach (int x in intNum) System.Console.WriteLine(x);
}

class MyIntComparer : IComparer
{
int IComparer.Compare(object x, object y)
{
return (int)y % 2 - (int)x % 2;
}
}
}
wuyi8808 2009-09-20
  • 打赏
  • 举报
回复
class Program
{
static void Main()
{
int[] intNum = { 7,5,5,6,1,2,3,5,11 };
int[] array = (int[])intNum.Clone();
int i = 0;
foreach (int x in array) if (x % 2 == 1) intNum[i++] = x;
foreach (int x in array) if (x % 2 == 0) intNum[i++] = x;

// 现在, 在 intNum 中, 奇数全部排在偶数的前面
foreach (int x in intNum) System.Console.WriteLine(x);
}
}
hhhcj 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kx_z2007 的回复:]
能用C#写一个吗?C++不是很了解,谢谢了!
比如C++中的swap函数,C#中对应的是什么呢?
[/Quote]
	int i=0,j=n-1,temp;
while(i<j)
{
while(num[i]%2!=0)
i++;
while(num[j]%2!=1)
j--;
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
勿腻阳 2009-09-20
  • 打赏
  • 举报
回复
能用C#写一个吗?C++不是很了解,谢谢了!
比如C++中的swap函数,C#中对应的是什么呢?
hhhcj 2009-09-20
  • 打赏
  • 举报
回复
	int i=0,j=n-1;
while(i<j)
{
while(num[i]%2!=0)
i++;
while(num[j]%2!=1)
j--;
swap(num[i],num[j]);
}
勿腻阳 2009-09-20
  • 打赏
  • 举报
回复
本人算法初学,希望能给个详细的C#程序例子作为参考,谢谢!

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧