目录
什么是冒泡排序
(小编很懒~~~)
代码思路讲解(逐步讲解)
使用冒泡排序的次数
要进行9趟冒泡排序 ,用for循环语句进行,代码如下
inti=0; intsz=sizeof(arr) /sizeof(arr[0]);//对数组元素计算 sz=10for (i=0; i<sz-1; i++)//数组里有10个元素,要进行9套冒泡排序 { //这里是一趟冒泡循环代码 }
第一趟冒泡排序
(这里用有序数组进行讲解,方便进行理解)
inti=0; intsz=sizeof(arr) /sizeof(arr[0]);//对数组元素计算 sz=10for (i=0; i<sz-1; i++)//数组里有10个元素,要进行9套冒泡排序 { intj=0; for (j=0; j<sz-1-i ; j++)//第一套冒泡排序要进行9次,第二套8次,用减i来进行递减; { if (arr[j] >arr[j+1]) { inttem=arr[j]; arr[j] =arr[j+1]; arr[j+1] =tem; } } }
第二趟冒泡排序
...
以下依次冒泡排序进行少一次交换
运行结果
代码实现
【编译器vs2019】
voidmpao(intarr[10],intsz) { inti=0; for (i=0; i<sz-1; i++)//数组里有10个元素,要进行9套冒泡排序 { intj=0; for (j=0; j<sz-1-i ; j++)//第一套冒泡排序要进行9趟,第二套8趟,用减i来进行递减; { if (arr[j] >arr[j+1]) { inttem=arr[j]; arr[j] =arr[j+1]; arr[j+1] =tem; } } } } intmain() { intarr[10] = {0}; inti=0; intsz=sizeof(arr) /sizeof(arr[0]); for (i=0; i<sz; i++) { scanf("%d", &arr[i]); } mpao(arr,sz); for (i=0; i<sz; i++) { printf("%d ", arr[i]); } return0; }