source:
123
abcd
456
abcdf
abc
789
A
1
结果:
1
123
456
789
A
abc
abcd
abcdf-------------------
define ONE_SIZE = 20我是这样做的:
void quick_sort(unsigned char* x, int low, int high)
{
int i=low, j=high;
unsigned char t[20];
memcpy(t,&x[low*ONE_SIZE],ONE_SIZE);while (i<j)
{
'       while (i<j && str_cmp(true,&x[j*ONE_SIZE],t,ONE_SIZE))
'              j--;'       memcpy(x+i*ONE_SIZE,x+j*ONE_SIZE,ONE_SIZE);
'       while (i<j && str_cmp(false,&x[i*ONE_SIZE],t,ONE_SIZE))
'       i++;
'       memcpy(x+j*ONE_SIZE,x+i*ONE_SIZE,ONE_SIZE);'       memcpy(x+i*ONE_SIZE,t,ONE_SIZE);
'       quick_sort(x,low,i-1); //递归调用此函数
'       quick_sort(x,i+1,high);
}我把所有数据放到x里面, 然后定长取出来再比较,
quick_sort(x,0,count);
个数少的时候还行,多了就挂了!