我有一个由两个元素char *word
和int number
. 当我想使用冒泡排序对它们进行排序时,我必须为它们编写交换部分:
int i,j,tmp;
char * temp;
for(i=0; i<max;i++)
{
for(j=0;j<max-i;j++)
{
if(strcmp(array[j].word,array[j+1].word)>0)
{
temp=array[j].word;
array[j].word=array[j+1].word;
array[j+1].word=temp;
tmp=array[j].number;
array[j].number=array[j+1].number;
array[j+1].number=tmp;
}
}
}
编辑我的结构声明
typedef struct{
char *word;
int number;
}
words;
words *array=NULL;
如果数组中有 n 个元素怎么办?交换所有东西将非常耗时。有没有办法省略这个?
当然,除了我不想使用的其他排序算法(如qsort
)。