首页 > 编程知识 正文

二维数组合并排序,c语言二维数组排序函数

时间:2023-05-06 05:34:48 阅读:34752 作者:2127

#includestdio.h #defineiline2//行。 fun3) )中,使用#defineirow8//列。 fun3) )中使用/**********************的例子中,以字符数组为例。 把泡沫排序作为排序方法。 --- * * * * * * * * * * * * * * * * * * * * * * /第一种方法:用一维数组替换二维数组,并对一维数组使用voidfun1((inti=0,j=0,k=0) char b[2*8]; printf(fun1) )的工作方式如下: n );//将二维数组进行一维数组while(I2 ) while (j8-1 ) { b[k ]=a[i][j]; j; (I; j=0; } b[k]=' '; //最后的puts(b; //首先,//看看以下简单易懂的鼓泡排序是否成功,逐一比较,进行更换。 但是,效率差的for(I=0; i16; I ) for(j=0; j16; j () if ) b[I]b[j] ) /按从大到小的顺序排序。 要从小到大排序,我知道。 //交换两者的值的t=b[i]; b[i]=b[j]; b[j]=t; }}puts(b; //输出尝试的结果(} void fun2) )//fun3是fun2的通用版本({ int i=0,j=0; char t; char a[2][8]={ '1354689 ',' 3456378' }; printf((nfun2) )的工作方式如下: (n ); for(I=0; i2*8; I ) for(j=0; j2*8; j () if )=(I/81 )8-1||j=) (j/81 ) )8-1) /无所作为) else ) if (a [ I/8 ] [ I %8] a [ j/8 ] a [ I/8 ] a[j/8][j%8]=t; } } } } i=0; wile(I2 ) {puts ) a[I]; I; } } void fun3() { int i=0,j=0; char t; char a[iline][irow]={ '1354689 ',' 3456378' }; printf((nfun3) )的工作方式如下: (n ); for(I=0; iiline*irow; I ) for(j=0; jiline*irow; j ) if(I==(I/irow1) *irow-1||j==) j/irow1) irow-1 ) /还是每行末尾的(0. ()//无所事事(else ) if ) ) a a[j/irow][j%irow]=t; } } } } i=0; wile(I2 ) {puts ) a[I]; I; } } int main () { fun1); //法一:将二维数组转换为一维数组,返回fun2(); //法2 :直接对二维数组进行排序的fun3(; //法二的通用版。 但是这里有两行排列,所以要应对哦。 //当然,在这里,也可以更通用地传递参数给数组a[][irow] .这些都是自己想的。 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。