将奇数移动至数组前半部分
发布时间
阅读量:
阅读量
例如,当输入一个数组 arr[]={1,2,3,4,5,6,7,8,9,10} 时,目标是将所有奇数排列在偶数之前,最终结果为{1,3,5,7,9,2,4,6,8,10}。这一过程与冒泡排序的逻辑存在相似之处。在此过程中,我们设定一个边界变量bount,并将其初始值设为0。随后对数组进行一次遍历,在比较相邻两个元素的奇偶属性时发现:若前一元素为偶数而后一元素为奇数,则交换这两个数值。为了实现该操作需编写一个Swap函数用于交换数值,并通过取模运算%2来判断数值的奇偶性质。
void Swap(int* x, int* y){
int tmp = 0;
tmp=*x;
*x = *y;
*y = tmp;
}
每次进行奇数查找操作时,需完成一次循环过程,以识别出一个奇数并将其安置于恰当的位置。[0,bound)所代表的是当前已完成排序的区域,而[bound,size)则表示尚未完成排序的部分(其中size为数组的总长度)。具体实现的函数形式如下:
void Separate(int* arr, int size){
//每次找奇数的方式
//[0,bo
全部评论 (0)
还没有任何评论哟~
