本文共 828 字,大约阅读时间需要 2 分钟。
Young氏矩阵
在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
算法思想:
//杨氏矩阵#includeusing namespace std; #define ROW 4#define COL 4//杨氏矩阵调整,右下调整void Young_down_heapify(int arr[][COL],int i,int j){ int min_i,min_j; if (j+1arr[i][j+1]){ min_i=i,min_j=j+1; } else { min_i=i,min_j=j; } if (i+1 arr[i+1][j]){ min_i=i+1,min_j=j; } if (min_i!=i || min_j!=j ){ swap( arr[i][j],arr[min_i][min_j]); Young_down_heapify(arr,min_i,min_j); }}//杨氏矩阵调整,左上调整void Young_up_heapify(int arr[][COL],int i,int j){ int max_i,max_j; if(j>0&&arr[i][j]
0&&arr[max_i][max_j] target&&j>0) var = arr[i][--j]; else return false; }}//杨氏矩阵查找递归版bool Young_search(int arr[][COL],int i,int j,int key){ if(i>=ROW||j<0)return false; if(arr[i][j]==key)return true; if(arr[i][j]
转载地址:http://abvvi.baihongyu.com/