一、算法简介

冒泡排序(Bubble Sort)是一种简单直观的排序算法,它重复地走访要排序的元素,按照相邻元素的大小进行比较并交换,使较大(或较小)的元素逐渐移动到列表的一端。这个过程类似于气泡在水中升起的过程,因此得名冒泡排序。

冒泡排序的基本思想是从列表的第一个元素开始,比较相邻的两个元素,如果顺序不正确,则进行交换。这样,每一轮冒泡会将最大(或最小)的元素移到列表的最后一个位置。然后,对剩余未排序的元素进行相同的操作,直到整个列表排序完成。

冒泡排序的实现通常使用两层嵌套的循环。外循环控制冒泡的轮数,内循环从头到尾依次比较相邻的两个元素,如果顺序不正确则交换它们。通过多轮的冒泡操作,最终能够将最大(或最小)的元素逐步沉到底部。

冒泡排序是一种简单易懂的排序算法,但其时间复杂度为O(n^2),效率较低。它主要适用于小规模的数据排序。如果数据规模较大,通常会选择更高效的排序算法。

二、算法实现

下面是冒泡排序在C#中的一个简单实现示例:

public static void BubbleSort(int[] array)
{
    int n = array.Length;
    
    for (int i = 0; i < n - 1; i++)
    {
        // 每一轮冒泡将最大的数移到末尾
        for (int j = 0; j < n - i - 1; j++)
        {
            // 如果相邻的两个数顺序不正确,则交换它们
            if (array[j] > array[j + 1])
            {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}

调用示例:

int[] array = { 64, 34, 25, 12, 22, 11, 90 };
BubbleSort(array);
Console.WriteLine("排序后的数组:");
foreach (int element in array)
{
    Console.Write(element + " ");
}

这段代码实现了冒泡排序算法。它通过两层循环,外层循环控制冒泡的轮数,内层循环比较相邻的两个元素并进行交换。经过多轮冒泡操作,将最大的数逐渐沉到末尾。最后输出排序后的数组。