将一整数序列按奇数在前,偶数在后的顺序重新排放,并要求奇偶两部分分别有序。
2005-01-22 02:10
771 查看
将一整数序列按奇数在前,偶数在后的顺序重新排放,并要求奇偶两部分分别有序。编写一函数实现。
#include <stdio.h>
#define N 15
void sort(int *,int);
void swap(int *, int *);
int main()
{
int int_array
= {0,10,9,8,7,6,5,4,3,2,1,11,15,13,0} ;
int i;
sort(int_array,N);
for (i=0;i<N;i++)
printf("%5d/n",int_array[i]);
return 0;
}
/* define the function sort() */
/* parameter: int * , int */
/* return: void */
/* function: rank a integer array */
void sort(int *ptr,int n)
{
int i,j; /* loop variable */
/* rank odd number */
for (i=0;i<n;i++)
for (j=n-1;j>i;j--)
if ( ptr[j] != 0 && ptr[j]%2 ==1 )
if ( (ptr[j]%2+ptr[j-1]%2 != 2) || (ptr[j]<ptr[j-1]) )
swap(&ptr[j],&ptr[j-1]);
/* rank even number */
for (i=n-1;i>0;i--)
for (j=0;j<i;j++)
if ( ptr[j] != 0 && ptr[j]%2 ==0 )
if ( (ptr[j]%2+ptr[j+1]%2 != 2) || (ptr[j]>ptr[j+1]) )
swap(&ptr[j],&ptr[j+1]);
/* rank result: odd number before zero, even number after zero, */
/* there are form small to big! */
}
/* define the function swap() */
/* parameter: int * ,int * */
/* return: void */
/* function: swap two numbers */
void swap(int *fst, int *sec)
{
int temp;
temp = *fst;
*fst = *sec;
*sec = temp;
}
#include <stdio.h>
#define N 15
void sort(int *,int);
void swap(int *, int *);
int main()
{
int int_array
= {0,10,9,8,7,6,5,4,3,2,1,11,15,13,0} ;
int i;
sort(int_array,N);
for (i=0;i<N;i++)
printf("%5d/n",int_array[i]);
return 0;
}
/* define the function sort() */
/* parameter: int * , int */
/* return: void */
/* function: rank a integer array */
void sort(int *ptr,int n)
{
int i,j; /* loop variable */
/* rank odd number */
for (i=0;i<n;i++)
for (j=n-1;j>i;j--)
if ( ptr[j] != 0 && ptr[j]%2 ==1 )
if ( (ptr[j]%2+ptr[j-1]%2 != 2) || (ptr[j]<ptr[j-1]) )
swap(&ptr[j],&ptr[j-1]);
/* rank even number */
for (i=n-1;i>0;i--)
for (j=0;j<i;j++)
if ( ptr[j] != 0 && ptr[j]%2 ==0 )
if ( (ptr[j]%2+ptr[j+1]%2 != 2) || (ptr[j]>ptr[j+1]) )
swap(&ptr[j],&ptr[j+1]);
/* rank result: odd number before zero, even number after zero, */
/* there are form small to big! */
}
/* define the function swap() */
/* parameter: int * ,int * */
/* return: void */
/* function: swap two numbers */
void swap(int *fst, int *sec)
{
int temp;
temp = *fst;
*fst = *sec;
*sec = temp;
}
相关文章推荐
- 数组:奇数在前,偶数在后,要求顺序不变
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所 有偶数位于数组的后半部分。要求时间复杂度为O(n)。
- 整数数组,奇数在前,偶数在后
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 剑指offer题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 奇数在前,偶数在后,可以有顺序改变
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
- 4.给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 要求:空间复杂度O(1),时间复杂度为O(n)
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 调整数组元素顺序,奇数在前,偶数在后
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- //1.调整数组使奇数全部都位于偶数前面。 //题目: //输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。