冒泡排序

void BubbleSort(int a[], int size)
{
	assert(a);
	int i = size - 1;
	int j = 0;
	while (i)
	{
		int exchange = 0;
		for (j = 0; j < i; j++)
		{
			if (a[j]>a[j + 1])
			{
				swap(a[j], a[j + 1]);
				exchange = j;
			}
		}
		//若待排序数组已有序
		if (exchange == 0)
		{
			break;
		}
		//若待排序数组已部分有序
		else  
		{
			i = exchange;
		}
	}
}

你可能感兴趣的:(排序算法,冒泡排序的优化)