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
posted @ 2020-09-23 21:25  Joynic  阅读(174)  评论(0编辑  收藏  举报