冒泡排序

#include <stdio.h>
void bubble(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)//确定冒泡排序的次数
	{
		int flag = 1;//如果这一趟已经有序
		int j = 0;
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] <= arr[j + 1])
			{
				int tmp;
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
				flag = 0;//本趟排序并不完全有序
			}
		}
		if (flag == 1)//如果已经完全有序跳出循环
		{
			break;
		}
	}
}
int main()
{
	int i;
	int sz;
	int arr[10]={2,5,8,9,4,22,55,89,78};//定义一个数组
	sz = sizeof(arr) / sizeof(arr[0]);//求数组中元素的个数
	bubble(arr, sz);
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}
上一篇:冒泡排序


下一篇:Codechef March Challenge 2021 Random Walk Queries(RWALKS) (动态点分治)