首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >算法系列-----矩阵(八)-------------矩阵元素排序

算法系列-----矩阵(八)-------------矩阵元素排序

作者头像
wust小吴
发布2022-03-04 15:55:19
发布2022-03-04 15:55:19
6060
举报
文章被收录于专栏:风吹杨柳风吹杨柳

其实这个内容是对列向量或者行向量进行排序,实质是进行一维数组的排序

说白了就是维度处理:

用冒泡法对一维数组的排序:

代码语言:javascript
复制
	// 冒泡法对数组中的元素从小到大排序
	/**
	 * 冒泡法对数组中的元素从小到大排序
	 * 
	 * @param args
	 *            参数b浮点型(double)数组
	 * @return 返回值是一个浮点型二数组
	 */
	public static double[] MinToMax(double[] b) {
		double temp = 0;
		for (int i = 0; i < b.length - 1; i++) {
			for (int j = 0; j < b.length - 1; j++) {
				if (b[j + 1] < b[j]) {
					temp = b[j];
					b[j] = b[j + 1];
					b[j + 1] = temp;
				}
			}
		}
		return b;
	}

测试结果:

代码语言:javascript
复制
测试数据
--------------------------------
	5.0	6.0	9.0	8.0
一维数组排序
--------------------------------
	5.0	6.0	8.0	9.0
代码语言:javascript
复制
	// 冒泡法对数组中的元素从大到小排序
	/**
	 * 冒泡法对数组中的元素从大到小排序
	 * 
	 * @param args
	 *            参数b浮点型(double)数组
	 * @return 返回值是一个浮点型二数组
	 */
	public static double[] MaxToMin(double[] b) {
		double temp = 0;
		for (int i = 0; i < b.length - 1; i++) {
			for (int j = 0; j < b.length - 1; j++) {
				if (b[j + 1] > b[j]) {
					temp = b[j];
					b[j] = b[j + 1];
					b[j + 1] = temp;
				}
			}
		}
		return b;
	}

测试结果:

代码语言:javascript
复制
测试数据
--------------------------------
	5.0	6.0	9.0	8.0
一维数组排序
--------------------------------
	9.0	8.0	6.0	5.0
代码语言:javascript
复制
	// 冒泡法对数组中的元素从大到小排序,并记录排序后元素在数组中的位置
	/**
	 * 冒泡法对数组中的元素从大到小排序
	 * 
	 * @param args
	 *            参数b浮点型(double)的一维数组
	 * @return 返回值a是一个浮点型(double)的二维数组,期中第一记录新的排序,第二列记录原位置
	 */
	public static double[][] MaxToMin1(double[] b) {
		double[][] a = new double[2][b.length];
		for (int i = 0; i < a[0].length; i++) {
			a[0][i] = b[i];
			a[1][i] = i;
		}
		double temp = 0;
		double location = 0;
		for (int i = 0; i < a[1].length - 1; i++) {
			for (int j = 0; j < a[1].length - 1; j++) {
				if (a[0][j + 1] > a[0][j]) {
					temp = a[1][j];
					a[1][j] = a[1][j + 1];
					a[1][j + 1] = temp;
					location = a[0][j];
					a[0][j] = a[0][j + 1];
					a[0][j + 1] = location;

				}
			}
		}
		return a;
	}

测试结果:

代码语言:javascript
复制
测试数据
--------------------------------
	5.0	6.0	9.0	8.0
一维数组排序
--------------------------------
	9.0	8.0	6.0	5.0
	2.0	3.0	1.0	0.0

然后需要去排矩阵的话,只需对行或者列向量进行排序,然后根据每行A[i]的值比较大小再交换的位置即可

MATLAB里面有专门的方法,不过我没有学习过这个软件。感兴趣的人可以去看看。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档