1.调整数组使奇数全部都位于偶数前面。
题目:
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
/*1.调整数组使奇数全部都位于偶数前面。
题目:
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
*/
void change(int arr[],int sz)
{
int i=0;
int j=0;
for (i=0;i<sz;i++)
{
if(arr[i]%2!=0)
{
continue;
}
else
{
j=i;
do
{
j++;
}
while ((arr[j]%2==0)&&(j<sz));
if (j<sz)
{
int tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
else
break;
}
}
for (i=0;i<sz;i++)
{
printf("%3d",arr[i]);
}
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int sz=sizeof(arr)/sizeof(arr[0]);
change(arr,sz);
return 0;
}
//杨氏矩阵
有一个二维数组.
数组的每行从左到右是递增的,每列从上到下是递增的.
在这样的数组中查找一个数字是否存在。
时间复杂度小于O(N);
数组:
1 2 3
2 3 4
3 4 5
1 3 4
2 4 5
4 5 6
#include<stdio.h>
#include<windows.h>
#define ROW 3
#define COL 3
void find_num(int arr[ROW][COL],int key, int*px, int *py)
{
int row = 0;
int col = *py-1;
while((row <= *px-1)&&(col >= 0))
{
if(arr[row][col] > key)
{
col--;
}
else if(arr[row][col] < key)
{
row++;
}
else
{
*px = row;
*py = col;
return;
}
}
*px = -1;
*py = -1;
}
int main()
{
int arr[ROW][COL] = {1,2,3,4,5,6,7,8,9};
int x = ROW;
int y = COL;
find_num(arr, 6, &x, &y);
printf("x = %d\ny = %d\n",x,y);
system("pause");
return 0;
}
本文介绍了一种将数组中的奇数和偶数重新排列的方法,并提供了一个示例代码。此外,还探讨了在一个递增的二维杨氏矩阵中查找特定数字的有效算法。
2015

被折叠的 条评论
为什么被折叠?



