C语言冒泡排序
1 #include <stdio.h> 2 3 void bubble_sort(int arr[], int len); 4 5 void main() { 6 int arr[] = {5, 5, 6, 9, 10, 1, 0, 3, 2}; 7 8 int total_size = sizeof(arr); 9 10 // 数组元素个数计算:总占用字节数 / 单个int占用字节数 11 int len = total_size / sizeof(int); 12 13 bubble_sort(arr, len); 14 15 printf("after...\n"); 16 17 for (int i = 0; i < len; i ++) { 18 printf("%d\n", arr[i]); 19 } 20 } 21 22 void bubble_sort(int arr[], int len) { 23 // 调用此function arr传的是地址,这里 32位机器 sizeof(arr) == 4, 64位机器 sizeof(arr) == 8
24 // printf("%zu\n", sizeof(arr)); 25 for (int i = 0; i <= len - 1; i ++) { 26 for (int j = 0; j < len - i - 1; j ++) { 27 if (arr[j] > arr[j + 1]) { 28 int tmp = arr[j + 1]; 29 arr[j + 1] = arr[j]; 30 arr[j] = tmp; 31 } 32 } 33 } 34 }
sizeof(arr) == 4