
二维数组如何冒泡排序???
展开全部
将一维数组的改一下就可以了
假设数组是a[m][n],可以用下面的方法
for(pass=1;pass<m*n;pass++)
{
for(i=0;i<m*n-1;i++)
{
if(a[i/n][i%n]>a[(i+1)/n][(i+1)%n])
{
hold=a[i/n][i%n];
a[i/n][i%n]=a[(i+1)/n][(i+1)%n];
a[(i+1)/n][(i+1)%n]=hold;
}
}
}
其实是做了一个二维和一维间的一一映射
假设数组是a[m][n],可以用下面的方法
for(pass=1;pass<m*n;pass++)
{
for(i=0;i<m*n-1;i++)
{
if(a[i/n][i%n]>a[(i+1)/n][(i+1)%n])
{
hold=a[i/n][i%n];
a[i/n][i%n]=a[(i+1)/n][(i+1)%n];
a[(i+1)/n][(i+1)%n]=hold;
}
}
}
其实是做了一个二维和一维间的一一映射
展开全部
经典排序之冒泡排序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
和一维的没啥区别,整理好指针就行了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
总有一个key的吧?
就是判断两个元素的大小的方法有区别,只是在判断大小的时候做下处理,其他的和一维的没有区别。
就是判断两个元素的大小的方法有区别,只是在判断大小的时候做下处理,其他的和一维的没有区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询