XX大型游戏公司笔试题之一 【 C++(揭秘很牛XX游戏公司的现 笔试题)整型随机数组奇偶排序(奇数从小到大,偶数从大到小)冒泡排序】
来源:互联网 发布:网络情缘歌词 编辑:程序博客网 时间:2024/05/17 05:09
今天遇到一个测试题:对一个整型随机数组成数组进行排序,奇数从小到大,偶数从大到小,只能用现有的数组,不能在开辟临时的数组存储空间,当然还要求优化效率。
于是本人琢磨着写了一个,基本要求是实现啦,可是效率不高,需要优化算法,希望感兴趣的朋友来优化下,或者提出你的宝贵建议.在此先谢过啦。
废话不多说,一切尽在代码中:
//Start
#include "stdafx.h"
#include <iostream>
using namespace std;
void SeparateOdd_Even(int* pAry,int len);
void OddAscSort(int* pAry,int start, int end);
void EvenDscSort(int* pAry,int start, int end);
int GetOddEvenBound(int* pAry,int len);
void DispResult(int* pAry, int len);
int _tmain(int argc, _TCHAR* argv[])
{
int BOUND = 0;
const int MAX = 10;
int ary[MAX] = {13,24,83,25,10,59,86,98,23,44};
//分开奇偶
SeparateOdd_Even(ary, MAX);
cout<<"分开奇偶: ";
DispResult(ary,MAX);
//获取奇偶分界
BOUND = GetOddEvenBound(ary, MAX);
//排序奇数从小到大冒泡排序
OddAscSort(ary, 0, BOUND);
//排序偶数从大到小冒泡排序
EvenDscSort(ary, BOUND, MAX);
//排序后的输出
cout<<"排序结果: ";
DispResult(ary,MAX);
return 0;
}
/*分开奇偶,奇前偶后*/
void SeparateOdd_Even(int* pAry,int len)
{
int i = 0;
int j = 0;
int temp = 0;
for (i=0; i<=len; i++)
{
if (pAry[i]%2 == 0) //当前为偶数
{
for (j=len-1; j>i; j--)
{
if (pAry[j]%2!=0) //此偶数和其后面:从最后开始往回数的奇数交换
{
temp = pAry[i];
pAry[i] = pAry[j];
pAry[j] = temp;
}
else
{
continue;
}
}
}
}
}
/*奇数从小到大冒泡排序*/
void OddAscSort(int* pAry,int start, int end)
{
int i = 0;
int j = 0;
int temp = 0;
for (i=start; i<end; i++)
{
for (j=i+1;j<end;j++)
{
if (pAry[i]>pAry[j])
{
temp = pAry[i];
pAry[i] = pAry[j];
pAry[j] = temp;
}
}
}
}
/*偶数从大到小冒泡排序*/
void EvenDscSort(int* pAry,int start, int end)
{
int i = 0;
int j = 0;
int temp = 0;
for (i=start; i<end; i++)
{
for (j=i+1;j<end;j++)
{
if (pAry[i]<pAry[j])
{
temp = pAry[i];
pAry[i] = pAry[j];
pAry[j] = temp;
}
}
}
}
/*获取分开奇偶边界*/
int GetOddEvenBound(int* pAry,int len)
{
for (int i=0;i<len;i++)
{
if (pAry[i]%2==0)
{
return i;
}
}
}
/*显示结果*/
void DispResult(int* pAry, int len)
{
int i=0;
for (i=0; i<len; i++)
{
cout<<pAry[i]<<" ";
}
cout<<endl;
}
//END
结果:
结果正确
小节:
此题主要是对冒泡排序的一个练习。可定还有更好的方法,希望各位能人不吝赐教!
====最后补充下:此题目为:XX = GameLoft笔试题(成都区)之一,请大家自己知道就好!=====
- XX大型游戏公司笔试题之一 【 C++(揭秘很牛XX游戏公司的现 笔试题)整型随机数组奇偶排序(奇数从小到大,偶数从大到小)冒泡排序】
- 奇偶数排序--整数数组的奇偶数分开(小米公司笔试题)
- XX公司招聘C笔试题
- xx公司的笔试有感
- 某游戏公司笔试题(2)
- 某游戏公司笔试题
- 一个游戏公司的笔试题
- 某游戏公司的部分笔试题
- java排序,随机生成一个数组,对其进行排序,偶数在前奇数在后,偶数从小到大排,奇数从大到小排
- 将一个从大到小的数组,用以下排序方法排序成从小到大的,()最快。----阿里巴巴2015实习生笔试题
- 剑指XX游戏(二) - 网易2011笔试题详解
- 天地游公司游戏开发笔试题
- 对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数 若奇数和偶数不等长,则把剩下的直接放到数组中
- 名企笔试:网易游戏2017招聘笔试题(赶去公司)
- 华为:对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放,且输出数组第一位放奇数
- 整数数组的冒泡排序(从小到大)
- 整数数组的冒泡排序(从小到大)
- 整数数组的冒泡排序(从小到大)
- 网页编程的核心:Script文件 WScript cscript.exe详解
- 出差累了
- 黑莓核心开发向导 - 2.2.1 使用HTTP认证
- 学生成绩管理系统 c语言实现
- 三星也宣布2010年要放弃Symbian了!Symbian的前途未卜啊
- XX大型游戏公司笔试题之一 【 C++(揭秘很牛XX游戏公司的现 笔试题)整型随机数组奇偶排序(奇数从小到大,偶数从大到小)冒泡排序】
- 查询表空间剩余空间和表属于哪个表空间
- SqlServer大批量导入导出数据
- ajax,jquery学习资源
- WM_COMMAND介绍和用法
- 小重山·斯卡波罗集市
- 关于Web开发,"新建"和"编辑"在同个页面的处理方法
- js中截取网页
- 黑莓核心开发向导 - 2.2.2 使用HTTPS连接