//数组作为函数参数(传递的是地址)相当于与指针了(此时arr就是一个变量了)【丢失了数组精度;元素个数不知道了】 所以计算长度不要写在函数里面
int BubbleSort(int arr[],int len)
{
for (int i = 0; i < len - 1; i++)
//int len = sizeof(arr) / sizeof(arr[0]); 这样写就会丢失精度 原因:是arr在函数里面作为变量传过来的
{
for (int j = 0; j < len - i - 1; j++)
{
/*if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}*/
//指针形式
if (*(arr + j) > *(arr + j + 1))
{
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
//排序
int main5_3(void)
{
int arr[] = {9,1,5,6,3,8,10,2,7,4};
BubbleSort(arr,10);
for (int i = 0; i < 10; i++)
{
printf("%-4d",arr[i]);
}
return 0;
}
运行结果:如下