大家帮我看看这个冒泡排序错哪了。。。谢谢了
void BubbleSort(sqlist*L){
for(int i=L->listsize;i>=1;i--)
{
for(int j=1;j<=i;j++)
{
if(L->elem[j]>L->elem[j+1])
{
L->elem[0]=L->elem[j+1];
L->elem[j+1]=L->elem[j];
L->elem[j]=L->elem[0];
}
}
}
2011-06-26 17:28
2011-06-26 18:37
2011-06-26 23:09
2011-06-27 10:00
2011-06-27 12:15
程序代码:#include <string.h>
#include <stdlib.h>
void swap(void * p1, void * p2, unsigned size) {
void * temp = malloc(size);
memcpy(temp, p1, size);
memcpy(p1, p2, size);
memcpy(p2, temp, size);
free(temp);
}
void bubble_sort(void * data,
unsigned num,
unsigned size,
int (* compare)(const void *, const void *))
{
int i, j, flag = 1;
for(i = 0; i < num && flag; i++) {
flag = 0;
for(j = 0; j < num - i - 1; j++) {
if(compare(data + j * size, data + (j + 1) * size) > 0) {
swap(data + j * size, data + (j + 1) * size, size);
flag = 1;
}
}
}
}

2011-06-27 13:27