#include <stdio.h>
void bubble_sort(int arr[], int sz);//冒泡排序的声明
int main()
{
int arr[10] = { 0 };//定义数组
int i = 0;
int sz=sizeof(arr) / sizeof(arr[0]);//求数组元素个数
//输入数组与输出排序前的数组
for (i = 0; i < sz; i++)
{
scanf("%d", &arr[i]);
}
printf("排序前:\n");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
bubble_sort(arr, sz);//冒泡排序
printf("\n");
printf("排序后\n");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
//冒泡排序的实现
void bubble_sort(int arr[], int sz)
{
int i = 0, j = 0;
for (i = 0; i < sz - 1; i++)//n个数只用进行n-1趟就能完成排序
{
int flag = 1;//判断是否排序结束
for (j = 0; j < sz - 1 - i; j++)//n个数只需要比较n-1次就能完成,每趟会排序好一个数
{
if (arr[j] > arr[j + 1])
{
int t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
flag = 0;
}
}
if (flag == 1)//未进行排序,排序已经完成,跳出排序
{
break;
}
}
}
冒泡排序【C语言】
最新推荐文章于 2024-08-27 10:18:40 发布