調整陣列的奇偶,楊氏矩陣中數的查詢

2021-08-21 19:47:31 字數 1347 閱讀 7399

1、調整陣列使奇數全部都位於偶數前面。

簡單思路:

給出乙個陣列,判斷陣列中元素的奇偶性,從陣列的兩端分別開始判斷,每判斷一次左端+1,右端-1,當左端的值小於右端時,迴圈列印結果。

**如下:

#includeint main()

; int sz = sizeof(arr)/sizeof(arr[0]);

intleft = 0;

intright = sz-1;

while(left

while((left

if(left

}for(i=0; i"%d ",arr[i]);

}return 0;

}

輸出結果:

2、有乙個二維陣列,陣列的每行從左到右是遞增的,每列從上到下是遞增的,在這樣的陣列中查詢乙個數字是否存在。

簡單思路如下:

在查詢數字是否存在時,可以先在陣列中找出乙個數,根據它與要查詢的數的大小比較逐步確定要查詢的數的位置。這樣的話,一開始在陣列中選取的數就很重要。在對楊氏矩陣陣列進行分析以後我們可以發現:在楊氏矩陣中,左上角是它的最小數,右下角是它的最大數,所以選取這兩個位置的數並沒有太大的意義。故此可以看一下左下角或右上角,發現這兩個位置的數有比較的價值,則可以以這兩個位置中的任何乙個數為比較的基準。

**如下:

#include

int find(int arr[3][3], int

*px, int

*py, int k)

else

if(arr[x][y]>k)

else

}*px = -1;

*py = -1;

return0;}

int main()

; int k = 0;

intx = 3;

inty = 3;

printf("請輸入要查詢的數:");

scanf("%d",&k);

int ret = find(arr, &x, &y, k);

printf("橫座標為:%d 縱座標為:%d\n", x, y);

return

0;}

輸出結果:

調整陣列使奇數全部都位於偶數前面,楊氏矩陣

1.調整陣列使奇數全部都位於偶數前面。題目 輸入乙個整數陣列,實現乙個函式,來調整該陣列中數字的順序使得陣列中所有的奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。define crt secure no warnings 1 include void change int arr,int le...

調整陣列使奇數全部都位於偶數前面 楊氏矩陣

1.調整 陣列使奇數全部都位於偶數前面。題目 輸入乙個整數陣列,實現乙個函式,來調整該陣列中數字的順序使得陣列中所有的奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。include include 1.調整陣列使奇數全部都位於偶數前面。題目 輸入乙個整數陣列,實現乙個函式,來調整該陣列中數字的順...

楊氏矩陣中的查詢

給定乙個楊氏矩陣,如何快速查詢指定的元素?要講究技巧。首先弄清楚什麼叫做楊氏矩陣 它的每一行從左至右是遞增的,每一列從上至下是遞減的。例如 1,2,3 2,4,6 5,7,8 對於這道題,首先想到的當然是暴力方法了,兩層for迴圈巢狀查詢,在優化一下每次從每行的最後乙個元素開始比較,要是大於這個地方...