社区
C++ 语言
帖子详情
矩阵算法
cy_i_lh
2007-12-04 02:49:09
输入 n= 3 要求输出矩阵 n*n
1 2 3
8 9 4
7 6 5
输入 n= 4 要求输出
1 2 3 4
14 15 16 5
11 12 13 6
10 9 8 7
...全文
254
4
打赏
收藏
矩阵算法
输入 n= 3 要求输出矩阵 n*n 1 2 3 8 9 4 7 6 5 输入 n= 4 要求输出 1 2 3 4 14 15 16 5 11 12 13 6 10 9 8 7
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Wolf_FienD
2007-12-04
打赏
举报
回复
NND 又见 螺旋 贴
http://topic.csdn.net/u/20071113/07/ea2188d2-154e-40a8-846c-d2fbff0c95b0.html
Aaron_Jerry
2007-12-04
打赏
举报
回复
看错了 不好意思
不过我想思路应该还是差不多的。
Aaron_Jerry
2007-12-04
打赏
举报
回复
1的位置是固定的(0,0),行进方向:右->下->左->上,在每个方向上找出行进步数的规律就可以了。
按照这种思路的代码如下:
#include <stdio.h>
#define N 5 //控制矩阵大小
int matrix[N][N];
int row_num,col_num;
int number;
int way; //行进方向
int right=1; //行进次数
int down=1;
int left=1;
int up=1;
void turn_right();
void turn_down();
void turn_left();
void turn_up();
void main()
{
int i,j;
while(number < N*N)
{
switch(way)
{
case 0:
turn_right();
break;
case 1:
turn_down();
break;
case 2:
turn_left();
break;
case 3:
turn_up();
break;
default:
break;
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-4d",matrix[i][j]);
printf("\n");
}
}
void turn_right()
{
int j;
int col=col_num;
if(row_num==0 && col_num==0)
{
for(j=col;j<=N-right;j++)
matrix[row_num][j]=++number;
col_num=col+N-1;
}
else
{
for(j=col+1;j<=col+N-2*(right-1);j++)
matrix[row_num][j]=++number;
col_num=col+N-2*(right-1);
}
right++;
way=1;
}
void turn_down()
{
int i;
int row=row_num;
for(i=row+1;i<=row+N-(2*down-1);i++)
matrix[i][col_num]=++number;
row_num=row+N-(2*down-1);
down++;
way=2;
}
void turn_left()
{
int j;
int col=col_num;
for(j=col-1;j>=col-(N-(2*left-1));j--)
matrix[row_num][j]=++number;
col_num=col-(N-(2*left-1));
left++;
way=3;
}
void turn_up()
{
int i;
int row=row_num;
for(i=row-1;i>=row-(N-2*up);i--)
matrix[i][col_num]=++number;
row_num=row-(N-2*up);
up++;
way=0;
}
ar_2002
2007-12-04
打赏
举报
回复
规律有点岐义 如当n为5时
1 2 3 4 5
22 23 24 25 6
18 19 20 21 7
14 15 16 17 8
13 12 11 10 9
1 2 3 4 5
25 24 24 22 6
18 19 20 21 7
14 15 16 17 8
13 12 11 10 9
是哪种?
算法
导论 — 4.2
矩阵
乘法的Strassen
算法
本文介绍了Strassen
矩阵
乘法
算法
,这是一种通过分治法减少
矩阵
乘法次数的方法,相较于传统
算法
,Strassen
算法
的时间复杂度更低,为O(n^2.81)。文章详细解释了
算法
的步骤,包括
矩阵
的分解、计算中间
矩阵
和最终结果的组合,并提供了
算法
的伪代码。
基于
矩阵
分解的推荐
算法
文章介绍了推荐
算法
的基本概念,包括基于内容、协同过滤的推荐方式,重点讲述了
矩阵
分解在推荐系统中的应用,如SVD
算法
,讨论了协同过滤存在的问题以及
矩阵
分解如何作为优化解决方案。同时,提到了
矩阵
分解的实际应用、损失函数的优化过程及代码实现,强调了
矩阵
分解在处理大规模稀疏
矩阵
时的优势。
算法
——
矩阵
算法
本文介绍了
矩阵
的基本概念,包括
矩阵
的定义、加法、减法、数乘等运算,并详细阐述了
矩阵
乘法及其运算律。重点讲解了
矩阵
快速幂
算法
,如何用于求解斐波那契数列,并给出了相关题目实例。此外,还提到了
矩阵
在高难度问题中的应用。
蛇形
矩阵
算法
及分析
本文介绍了一种通过C语言实现的蛇形
矩阵
生成
算法
。该
算法
接收一个整数N作为输入,输出一个N行N列的三角形
矩阵
,
矩阵
中的数字从1开始按蛇形路径递增排列。文章详细描述了
算法
的实现过程,并提供了完整的代码示例。
算法
专题之
矩阵
本文精讲了几种常见的
矩阵
算法
,包括图片旋转、
矩阵
搜索、
矩阵
赋值、螺旋
矩阵
及路径搜索。通过具体实例和代码实现,帮助读者深入理解
矩阵
算法
在实际应用中的作用。
C++ 语言
65,212
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章