冒泡排序
#include <stdio.h>
void bubble_sort(int arr[], int sz)
{
int i = 0;
for (i=0; i<sz-1; i++) // 外层是比较的轮数
{
int j = 0;
for (j = 0; j < sz-i-1; j++) // 内层是每轮比较的次数
{
if (arr[j] > arr[j + 1]) //比较后进行交换
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[] = {10, 12,9,6,13};
int sz = sizeof(arr) / sizeof(arr[0]); //求得数组长度
int i = 0;
bubble_sort(arr, sz);
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
注意:求得的sz一般要在函数外求得,然后作为参数传入函数 也就是说,数组arr在传入的时候是只传入了首元素的地址,而非arr本身。函数内部的arr已经不是原来的了,所以函数内部求sz也是错误的。
















