C#冒泡排序算法实现详解

Elena
Elena
发布时间:2026-10-14| 4人浏览过
原创

本文介绍如何使用C#语言实现经典的冒泡排序算法。通过定义基于引用传递的交换方法,配合嵌套循环对整数数组进行从小到大排序,帮助开发者理解基础排序逻辑与C#语法细节。

算法目标与原理

冒泡排序(Bubble Sort)是一种简单的排序算法。其核心逻辑是通过重复遍历要排序的列表,比较相邻的两个元素,如果顺序错误就交换它们的位置。每次遍历会将当前未排序部分的最大值“冒泡”到末尾,直到整个序列有序。

C#代码实现步骤

第1步:引入命名空间与定义类结构

首先需要在程序中添加必要的命名空间支持,以便使用控制台输出和数据结构。创建一个名为 冒泡排序 的命名空间,并在其中定义 Program 类作为程序入口。

第2步:编写元素交换辅助方法

为了实现代码复用,可以定义一个静态方法 swap。该方法利用 ref 关键字传入两个整数的引用,从而直接在内存中交换它们的值,无需返回值。

static void swap( ref int atemp, ref int btemp)
{
    int temp = atemp;
    atemp = btemp;
    btemp = temp;
}

第3步:准备待排序数据并输出初始状态

在 Main 方法中初始化一个整数数组,包含若干无序数字。使用 foreach 循环遍历数组,将排序前的元素打印到控制台,便于后续对比验证。

int[] arr = {23,44,66,76,98,11,3,9,7};
Console.WriteLine("排序前的数组:");
foreach(int item in arr)
{
    Console.Write(item+" ");
}

第4步:执行冒泡排序循环

使用两层嵌套 for 循环完成排序逻辑:

  • 外层循环:i 从 0 遍历至 arr.Length-1,控制需要进行的轮数。
  • 内层循环:j 从 0 遍历至 arr.Length-1-i,避免已排好序的末尾元素参与比较。

在内层循环中,判断当前元素是否大于下一个元素。若 arr[j] > arr[j + 1],则调用 swap 方法交换两者位置。

for(int i=0; i<arr.Length-1; i++)
{
    for(int j=0; j<arr.Length-1-i; j++)
    {
        if (arr[j] > arr[j + 1])
            swap( ref arr[j], ref arr[j + 1]);
    }
}

第5步:验证排序结果

排序完成后,再次遍历数组并打印结果。此时数组应呈现升序排列。最后使用 Console.ReadKey() 暂停控制台窗口,以便观察输出。

Console.WriteLine("排序后的数组:");
foreach(int item in arr)
{
    Console.Write(item+" ");
}
Console.WriteLine();
Console.ReadKey();

完整代码汇总

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 冒泡排序
{
    class Program
    {
        static void swap( ref int atemp, ref int btemp)//注意ref的使用
        {
            int temp = atemp;
            atemp = btemp;
            btemp = temp;
        }
        static void Main(string[] args)
        {
            int temp=0;
            int[]arr={23,44,66,76,98,11,3,9,7};
            Console.WriteLine("排序前的数组:");
            foreach(int item in arr)
            {
                Console.Write(item+" ");
            }
            Console.WriteLine();
            for(int i=0;i<arr.Length-1;i++)
            {
                for(int j=0;j<arr.Length-1-i;j++)
                {
                    if (arr[j] > arr[j + 1])
                        swap( ref arr[j], ref arr[j + 1]);
                }
            }
            Console.WriteLine("排序后的数组:");
            foreach(int item in arr)
            {
                Console.Write(item+" ");
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

运行结果说明

执行上述代码后,控制台将首先输出原始乱序数组 23 44 66 76 98 11 3 9 7 ,随后输出排序后的升序数组 3 7 9 11 23 44 66 76 98 。这证实了冒泡排序算法在C#环境中的正确性。

以上就是C#冒泡排序算法实现的详细内容,更多关于C#算法编程的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。