冒泡排序算法的原理如下:
-
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
-
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
-
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
动态展示
总结:
假设N个数
则外层需要进行N-1趟
每i趟内层需要进行N-1-i次交换
代码实现:
#include"stdio.h"
#define N 15
int main()
{
int arr[N] = { 3,38,5,44,47,15,36,26,27,2,46,4,19,50,48 };
int temp;
for (int i = 0; i < N-1; i++)
{
for (int j = 0; j < N-1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("排序后:\n");
for (int i = 0; i < N; i++)
{
printf("%3d", arr[i]);
}
return 0;
}
今日打卡!