冒泡排序:也叫升序排序法,比较相邻的两个数,如果第一个比第二个大就交换它们,依次往下比较,一趟下来就确定了最后的的元素(该数组的最大数)。若该数组有n个元素,需进行n-1趟排序,第i趟比较的次数为n-1-i次。
在了解了冒泡排序的定义之后,我们一起来写代码吧
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void bubble_sort(int arr[], int sz) { int i = 0; int n = 0; int j = 0; for (i = 0; i < sz-1 ; i++)//sz个元素进行sz趟排序 { for (j = 0; j < sz - 1 - i; j++)//每个元素进行的排列 { if (arr[j] > arr[j + 1]) { n = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = n; } } } for (i = 0; i < sz; i++) { printf("%d ", arr[i]); } } int main() { int i = 0; int arr[] = { 9,8,7,6,5,4,3,2,1 }; int sz = sizeof(arr) / sizeof(arr[0]);//计算元素个数一定要在传参前 bubble_sort(arr, sz); return 0; }
注意:1.在计算元素个数时一定要在传参前进行计算,不能放到调用的函数中去计算。
2.N个元素总共有N-1次交换,每个数有N-1-I次交换。
运行代码为:
如果对你的问题有帮助的话,点个赞再走吧~