2014-04-12 145 views
1

排序1个Dimension三维数组我有一个三维数组:浮input[2][50][1000];快速排序:用C

我想快速排序它:

qsort (x, sizeof(x)/sizeof(*x), sizeof(*x), comp); 

其中comp为

int comp (const void * elem1, const void * elem2) { 
    float f = *((float*)elem1); 
    float s = *((float*)elem2); 
    if (f > s) return 1; 
    if (f < s) return -1; 
    return 0; 
} 

我只想对我的3D阵列的1维进行排序,即我想对input[0][temp][0]input[0][temp][1]input[0][temp][2]等进行排序。

问题:我用x替换什么? 原谅我,如果这听起来愚蠢

+0

归根结底,这是1000个元素从'输入排序[0] [临时] [0] ..输入[0] [临时] [999]',是正确的? – WhozCraig

+0

@WhozCraig这个数字可能不等于数千,但只有那个数字。这可能不会像50岁那样。但那又如何呢? –

+0

@WhozCraig Yah,应该是浮动的,你能写一个答案。关于1000的事情,我宣布它到1000年,但也许我只填充元素高达100,如果是这样,我将排序高达100只 –

回答

1
float (*x)[1000] = &input[0][temp]; 
qsort (x, sizeof(*x)/sizeof(**x), sizeof(**x), comp);