首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按行对二维数组进行排序

按行对二维数组进行排序
EN

Stack Overflow用户
提问于 2012-02-24 20:53:11
回答 3查看 482关注 0票数 0

我有一个二维(3x7)数组。我想按行对它进行排序。我已经写了一个示例代码。

代码语言:javascript
运行
复制
 #define numRows 3
    #define numCols 7
int arr[numRows-1][numCols-1] = {{0,1,2,3,4,5,6}, {7,8,9,10,11,12,13},{14,15,16,17,18,19,20}};

    sort_row(arr);

    void sort_row(int *p)
    {
     for (int i = 0 ;i<numRows-1;i++)
     {
       sort(p[i][]);
     }
    }

    void sort(int *p)
    {
        for ( int c = 1 ; c <= numCols - 1 ; c++ )
        {
            for ( d = 0 ; d <= c - 1 ; d++ )
            {
                if ( array[c] < array[d] )
                {
                    swap = array[d];
                    array[d] = array[c];

                for ( int k = c ; k > d ; k-- )
                    array[k] = array[k-1];      

                array[k+1] = swap;
                }
            }
        }
    }

我正在对每一行进行插入排序。

Qn:我是否将每一行都正确地传递到排序中?我该如何改进它呢?

寻找改进建议,可以改进或指出代码中的错误

EN

Stack Overflow用户

发布于 2012-02-24 21:21:24

在@unwind ans上搜索后,得到了这样的答案:

代码语言:javascript
运行
复制
#include <stdlib.h>
#define numRows 3
#define numCols 7
int arr[numRows-1][numCols-1] = {{0,1,2,3,4,5,6}, {7,8,9,10,11,12,13},{14,15,16,17,18,19,20}};
int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
void sort_row(int *p)
{
 for (int i = 0 ;i<numRows-1;i++)
 {
   qsort (p[i], 7, sizeof(int), compare);//sort(p[i]);
 }
}
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9431115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档