C++二维数组的元素值按升序排列——选择排序

关于这个题当真是困扰了我好一阵子,今天终于是解决了,赶紧来给跟我一样陷入迷茫的新手指明一下方向以及点一下我的易错点,共勉!

关于这个问题我给出了两个不同的方法,一是将二维数组看成一维数组,二是运用指针的思想来简化算法。

其实这个问题一个是可能不明白如何将二维数组看成一维数组(for example me...)再一个就是指针的问题了 哈哈哈 希望我写的代码可以使你明白一些~

一、将二维数组一维化

好吧,直接上代码,里面标注了我希望读者看到的一些注意的点及批注~

#include<iostream>
using namespace std;
int main(){



    int a[3][3] = { 5, 9, 4, 5, 9, 5, 4, 3, 1 };
	int i, j, x, y, t;
	int x1, y1, min, temp;
	    // 注意是选择排序
	for (i = 0; i < 8;i++)    // 此处将二维数组看成一维数组, 可以想象成从第一行弯弯绕绕下来的一维数组 
		    // 注意此处是小于8
	{
		t = i;   // 记录当前最小值的 位置
		x = t/ 3;  //除以列
		y = t % 3;   //取余列
		min = a[x][y];  // 当前最小值的元素
		
		for (j = i+1; j < 9; j++)   //此处是小于9                                                        
		{
			x1 = j / 3;
			y1 = j % 3;
			if (a[x1][y1] < a[x][y])   // 每一次遍历的元素与当前最小元素相比较
			{
				min = a[x1][y1];   // 最先元素被不
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值