4.编写函数,实现二维矩阵每行升序排序。

4.编写函数,实现二维矩阵每行升序排序。,第1张

题目:m*n矩阵,然后进行每行元素的升序排序。


思路分析:二维矩阵,每一行进行冒泡排序,升序。


代码如下:

#include 

int shengxu(int a[2][6], int m, int n)
{
    for (int i = 0; i < m; i++)//最外层循环为行数
    {
        int temp;
        int len = 0;
        for (int k = 0; k < n - 1; k++) //冒泡排序算法,外循环为对比次数。


最多对比n-1次。


{ int jiaohuan = 0; for (int j = n - 1; j > k; j--) //每趟排序时的算法,从最后一位,依次对比到前面 { if (a[i][j] < a[i][k])//外循环 { temp = a[i][j]; a[i][j] = a[i][k]; a[i][k] = temp; jiaohuan = 1; } }//每一趟冒泡完,冒泡排序中,外循环换下一趟对比。


len++; if (jiaohuan == 0) { printf("第%d行进行了%d次排序\n", i, k + 1); break;//此时第一行进行到k+1趟时,排序完成,结束循环,进入下一行的排序。


} } } return; } int main() { int a[2][6] = { {5,6,4,3,9,1},{9,8,6,5,3,2} }; shengxu(a, 2, 6); for (int i = 0; i < 2; i++) { for (int k = 0; k < 6; k++) { printf("%d", a[i][k]); } printf("\n"); } return 0; }

利用冒泡排序法

#include 

int shengxu(int a[2][6], int m, int n)
{
    for (int i = 0; i < m; i++)//最外层循环为行数
    {
        int temp;
        int len = 0;
        for (int k = 0; k < n - 1; k++) //冒泡排序算法,外循环为对比次数。


最多对比n-1次。


{ int jiaohuan = 0; for (int j = n - 1; j > k; j--) //每趟排序时的算法,从最后一位,依次对比到前面 { if (a[i][j] < a[i][j-1])//外循环 { temp = a[i][j]; a[i][j] = a[i][j-1]; a[i][j-1] = temp; jiaohuan = 1; } }//每一趟冒泡完,冒泡排序中,外循环换下一趟对比。


len++; } } return; } int main() { int a[2][6] = { {5,6,4,3,9,1},{9,8,6,5,3,2} }; shengxu(a, 2, 6); for (int i = 0; i < 2; i++) { for (int k = 0; k < 6; k++) { printf("%d", a[i][k]); } printf("\n"); } return 0; }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/568386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存