C#冒泡排序提前跳出break
时间: 2024-09-19 09:07:11 浏览: 30
在C#中,冒泡排序是一种简单的排序算法,它通过不断交换相邻元素如果它们的顺序错误,直到整个序列变成有序。当遍历过程中发现一次完整的遍历都没有发生过元素交换,这时就可以确定序列已经排好序了,因为最大或最小的元素已经在正确的位置上。这就是所谓的“提前跳出”或“优化版”的冒泡排序,也称为“鸡尾酒排序”或“双向冒泡排序”。
在C#代码中,通常会设置一个标志变量,比如`swapped`,表示是否发生了交换。如果在一轮遍历中没有发生交换,说明序列已经是有序的,可以立即退出循环。以下是优化版冒泡排序的一个示例:
```csharp
void BubbleSort(int[] array)
{
bool swapped;
for (int i = 0; i < array.Length - 1; i++)
{
swapped = false;
for (int j = 0; j < array.Length - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
// 交换元素
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
swapped = true;
}
}
// 如果一轮没有发生交换,说明数组已排序
if (!swapped)
break;
}
}
```
阅读全文