c語言字符數(shù)組冒泡排序 C語言,如何對二維數(shù)組進行按列排序?
C語言,如何對二維數(shù)組進行按列排序?在C語言中,二維數(shù)組是按行存儲的,每行排序都很方便。每一行可以看作一個一維數(shù)組,排序函數(shù)可以用來直接排序。但是,對每列進行排序不能直接視為一維數(shù)組。但是,第j列a[
C語言,如何對二維數(shù)組進行按列排序?
在C語言中,二維數(shù)組是按行存儲的,每行排序都很方便。每一行可以看作一個一維數(shù)組,排序函數(shù)可以用來直接排序。
但是,對每列進行排序不能直接視為一維數(shù)組。但是,第j列a[0。。。M-1][J]仍然可以作為一維數(shù)組進行邏輯排序。下面是氣泡排序的示例。
按列對二維數(shù)組排序后,進一步說明如何調(diào)用快速排序函數(shù)按行排序。
程序源代碼:。
C語言怎樣對二維數(shù)組中每個元素進行選擇排序?
參考代碼:#include<stdio。H>
#包括“標準庫”。H “
#包含”時間。H“
int main(int argc,char*argv[]{
int a[5][8],I,J,K,t,*P
printf(”排序前:n“)
srand((unsigned)time(null))
for(I=0I<5i){//賦值給2D數(shù)組
for(J=0j<8printf(”=“,a[I][J]=Rand() 0))
printf(”n“)}]printf(”排序后: “)
P=(int*)a//簡化為一維,因此排序很簡單
for(t=I=0I<40i){//按選擇排序
for(k=I,j=k 1J<40j)
if(P[k]>P[j])
k=j
if(k!=I)
J=P[k],P[k]=P[I],P[I]=J
打印f(T%8?“=”:“=n”,P[i
]}]返回0
}