指標練習 與 楊氏矩陣 學習

2021-09-24 04:39:17 字數 1737 閱讀 2852

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

要求

輸入乙個整數陣列,實現乙個函式, 來調整該陣列中數字的順序使得陣列中所有的奇數字於陣列的前半部分, 所有偶數字於陣列的後半部分。

問題分析

題目要求將所有的奇數字於陣列前半部分,偶數字於陣列後半部分

程式實現

#define _crt_secure_no_warnings

#include#include#includevoid movearr(int *str, int size)

else

break;

} while (p2!=(str+size))

p1++;

} p2++; }}

int main()

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

movearr(arr,sz);

int i = 0;

for (i = 0; i < sz; i++)

system("pause");

return 0;

}

楊氏矩陣

有乙個二維陣列:陣列的每行從左到右是遞增的,每列從上到下是遞增的.

在這樣的陣列中查詢乙個數字是否存在。

時間複雜度小於o(n);

問題分析

給定乙個簡單的樣式矩陣

1   2   3

3 6 9

4 8 10

結合該矩陣特點,每一行,每一列為遞增,因為我們可以將陣列的第一行與第一列,看為乙個區間,在第乙個由第一行月第一列所組成的區間裡a[0][0],為這個區間最小的數字,a[0][2]為該行最大的數字,a[2][0]為該列最大數字,因此我先判斷所要查詢的數字是否在這個兩個區間內,若在,則進行遍歷查詢。

第二個區間為第二行和第二列,因為在第乙個區間時a[0][1],a[1][0]已經進行了遍歷,因此第二個區間我們應從a[1][1]為起點開始,a[1][1]為該區間的最小值,a[1][2],a[2][1]為最大數字,判斷所要查詢的數字是否在這個區間內,如存在,遍歷查詢,反正開始在第三個區間內查詢。

程式實現

#define _crt_secure_no_warnings

#include#include#include#define size 3

int findnum(int arr[size][size], int size, int find)

}if (arr[size-1][i]>=find)

for (p = i; p < size; p++)

}else

return 0;

} }int main()

; int ret = 0;

int find = 0;

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

scanf("%d", &find);

ret = findnum(arr,size,find);

if (ret == 1)

printf("有這個數字\n");

else

printf("沒有這個數字\n");

system("pause");

return 0;

}

楊氏矩陣學習筆記

參考資料 ioi2019中國國家候選隊 集 袁方舟 楊氏矩陣在資訊學競賽中的應用 標準楊表大概就是行單調增,列單調增並且行數單調不增,列數單調不增的乙個矩陣 半標準楊表大概就是行或列有乙個單調不降 插入x 以行為例 從第一行開始 每次在當前行行找第乙個最小的比x大的數 找不到就插到行末並退出 否則替...

楊氏矩陣與鉤子公式

楊氏矩陣又叫楊氏圖表,它是這樣乙個矩陣,滿足條件 1 如果格仔 i,j 沒有元素,則它右邊和上邊的相鄰格仔也一定沒有元素。2 如果格仔 i,j 有元素a i j 則它右邊和上邊的相鄰格仔要麼沒有元素,要麼有元素且比a i j 大。1 n所組成楊氏矩陣的個數可以通過下面的遞推式得到 如圖就是n 3時的...

楊氏矩陣與鉤子公式

楊氏矩陣又叫楊氏圖表,它是這樣乙個矩陣,滿足條件 1 如果格仔 i,j 沒有元素,則它右邊和上邊的相鄰格仔也一定沒有元素。2 如果格仔 i,j 有元素a i j 則它右邊和上邊的相鄰格仔要麼沒有元素,要麼有元素且比a i j 大。1 n所組成楊氏矩陣的個數可以通過下面的遞推式得到 如圖就是n 3時的...