(编程训练)再回首,数据结构——二维数组的操作
来源:互联网 发布:有线电视端口改网线 编辑:程序博客网 时间:2024/05/08 19:48
最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
在VC++6.0下可运行,当初还写了不少注释。
【问题描述】
设二维数组a含有m*n个整数。
(1)写出算法判断a中所有元素是否互不相同,输出相关信息(Yes/No):
(2)a中所有元素互不相同时,试分析算法的时间复杂度。
【基本要求】
·功能:判断二维数组a中各元素是否互不相同,并给出当a中所有元素互不相同时算法的时间复杂度。
·输入:a中各元素的值。
·输出:对a中各元素是否有互不相同的判断结果。
【测试数据】
输入数组行数、列数:3,4,以及各元素的值:0,2,6,4,-9,-1,5,12,3,7,8,预期的输出结果是:Yes。
输入数组行数、列数:3,4,以及各元素的值:0,2,6,4,-9,-1,5,12,3,7,8,预期的输出结果是:No。
【模块划分】
① 输入二维数组a中各元素的值Input。
② 判断a中所有的元素是否互不相同JudgEqual。
③ 主函数main,依次调用函数Input、JudgEqual。
/*二维数组*/#include <stdio.h>void Input(int* a,int m, int n){int i,j;for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%d",&a[i*n+j]);}void JudgEqual(int *a, int m, int n){int i,j,k,l;for(i=0;i<m;i++){for(j=0;j<n;j++){for(k=j+1;k<n;k++)if(a[i*n+k]==a[i*n+j]){printf("No!\n");return;}for(l=i+1;l<m;l++){for (k=0;k<n;k++){if(a[l*n+k]==a[i*n+j]){printf("No!\n");return;}}}}}printf("Yes!\n");}int main(void){int a[100],m,n,num;scanf("%d",&num);getchar();while(num--){scanf("%d%d",&m,&n);getchar();Input(a,m,n);JudgEqual(a,m,n);}return 0;}
0 0
- (编程训练)再回首,数据结构——二维数组的操作
- (编程训练)再回首,数据结构——字符串操作
- (编程训练)再回首,数据结构——二叉排序树的建立
- (编程训练)再回首,数据结构——顺序表上的编程训练
- (编程训练)再回首,数据结构——链表上的编程训练_实现多项式运算
- (编程训练)再回首,数据结构——入队列、出队列操作
- (编程训练)再回首,数据结构——哈夫曼编码的实现
- (编程训练)再回首,数据结构——无向图的邻接矩阵表示、DFS、BFS
- 再回首,数据结构——字符串与数组的常见操作(顺序存储)
- (编程训练)再回首,数据结构——二叉树的前序、中序、后序遍历(递归)
- (编程训练)再回首,数据结构——二叉树的前序、中序、后序遍历(非递归)
- (编程训练)再回首,数据结构——使用栈判断括号匹配
- (编程训练)再回首,数据结构——(升级版)使用栈判断括号匹配
- 再回首,数据结构——链表上的常见操作
- 再回首,数据结构——链栈上的常见操作
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- 再回首,数据结构——顺序栈上的常见操作
- 再回首,数据结构——链栈的其它一些操作和应用
- [LeetCode]Letter Combinations of a Phone Number
- 从视频中截图
- verilog实现的五级流水简易CPU(带板极验证)
- 沈阳民生耳鼻喉看鼻炎
- PL/SL连接Oracle服务器
- (编程训练)再回首,数据结构——二维数组的操作
- C和C++的面向对象专题(9)——Gtkmm的最佳实践
- mongodb的安装配置,使用
- 在有循环嵌套时, 要把大循环写在内, 小循环写在外, 原因在此
- springmvc代码
- Linux 的僵尸(zombie)进程
- FastDFS之java客户端使用
- stm32 f4 Cube VCP问题解决
- (编程训练)再回首,数据结构——二叉树的前序、中序、后序遍历(递归)