看来冒泡法也只能针对个例!
搞复杂一点
#include <stdio.h>
void SwapNumberValue(int* v1, int* v2)
{
int temp = *v1;
*v1 = *v2;
*v2 = temp;
}
void BubbleSort(int* numbers, int* numberCounts)
{
for (int i = 0; i < *numberCounts - 1; i++)
{
for (int j = 0; j < *numberCounts - 1 - i; j++)
{
if(*(numbers + j) > *(numbers + j + 1))
{
SwapNumberValue(&(*(numbers + j)), &(*(numbers + j + 1)));
}
}
}
}
void PrintNumbers(int* numbers, int* numberCounts)
{
for (int i = 0; i < *numberCounts; i++)
{
printf("%d ",*(numbers + i));
}
}
int main()
{
int length = 10;
int numbers[length] = {6, 4, 3, 8, 7, 9, 1, 5, 0, 2};
printf("排序前:\n");
PrintNumbers(numbers, &length);
printf("\n\n排序后:\n");
BubbleSort(numbers, &length);
PrintNumbers(numbers, &length);
return 0;
}
写错了就说写错了