楊氏矩形和調整陣列使奇數全部都位於偶數前面
阿新 • • 發佈:2019-01-05
#include <stdio.h> #include <stdlib.h> //1.調整陣列使奇數全部都位於偶數前面。 // //題目: // //輸入一個整數陣列,實現一個函式, //來調整該陣列中數字的順序使得陣列中所有的奇數位於陣列的前半部分, //所有偶數位於陣列的後半部分。 // void adjustment(int arr[], int length){ for (int i = 0; i < length; i++){ if (arr[i] % 2 == 0){ for (int j = i + 1; j < length; j++){if (arr[j] % 2 != 0){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; break; } } } } } //2. ////楊氏矩陣 //有一個二維陣列. //陣列的每行從左到右是遞增的,每列從上到下是遞增的. //在這樣的陣列中查詢一個數字是否存在。 //時間複雜度小於O(N);// //陣列: //1 2 3 //2 3 4 //3 4 5 // // //1 3 4 //2 4 5 //4 5 6 // //1 2 3 //4 5 6 //7 8 9 int fand(int arr[][3], int target, int row, int col) { int j = col; for (int i = 0; i < row;) { for (j--; j >= 0;) { if (arr[i][j] == target) { return 1; }else if (arr[i][j] > target) { j--; } else if (arr[i][j] < target) { i++; } } } return 0; } int main(){ /*int arr[] = { 3, 2, 4, 6, 1, 5, 8, 10, 12,3 }; int length = sizeof(arr) / sizeof(arr[0]); adjustment(arr, length); for (int i = 0; i < length; i++){ printf("%d ", arr[i]); }*/ int arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int ret = fand(arr, 10, 3, 3); printf("%d \n", ret); system("pause"); return 0; }