函数中的冒泡排序法
#include<stdio.h>
void maopao(int* pArr, int len)
{
for (int j = 0; j < len-1; j++)
{
for (int i = 0; i < len-1; i++)
{
if (pArr[i] < pArr[i + 1])
{
int t;
t = pArr[i];
pArr[i] = pArr[i + 1];
pArr[i + 1] = t;
}
}
}
}
int main(void)
{
int a[6] = { 55,66,24,1,3,8 };
maopao(a,6);
for (int i = 0; i < 6; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
该结果为 VS2019输出
a[i]和a[i+1]交换后随即将值交换
55,66,24,1,3,8
a[0]=55;a[1]=66;a[2]=24;a[3]=1;a[4]=3;a[5]=8
当调用函数后随即进行替换
a[0]与a[1]比较大小,55<66,所以66与55换位置,此时a[0]=66,a[1]=55
随后第一项a[0]与后面每一项比较大小。
第一项与后面每一项都比较完后,
第二项a[1]与后面每一项比较。
a[1]=55与a[2]比较大小,24<55,所以不用换位置,