大家帮我看看这个冒泡排序错哪了。。。谢谢了
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];
}
}
}
#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; } } } }