C#实现所有经典排序算法

【C#】十大排序算法(动图演示+代码实现) C#十大排序 阅读详情
//选择排序  
class SelectionSorter  
{  
    private int min;  
    public void Sort(int[] arr)  
    {  
        for (int i = 0; i < arr.Length - 1; ++i)  
        {  
            min = i;  
            for (int j = i + 1; j < arr.Length; ++j)  
            {  
                if (arr[j] < arr[min])  
                    min = j;  
            }  
            int t = arr[min];  
            arr[min] = arr[i];  
            arr[i] = t;  
        }  
    }  
    static void Main(string[] args)  
    {  
        int[] array = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };  
        SelectionSorter s = new SelectionSorter();  
        s.Sort(array);  
        foreach (int m in array)  
            Console.WriteLine("{0}", m);  
    }  
}  
//冒泡排序  
class EbullitionSorter  
{  
    public void Sort(int[] arr)  
    {  
        int i, j, temp;  
        bool done = false;  
        j = 1;  
        while ((j < arr.Length) && (!done))//判断长度  
        {  
            done = true;  
            for (i = 0; i < arr.Length - j; i++)  
            {  
                if (arr[i] > arr[i + 1])  
                {  
                    done = false;  
                    temp = arr[i];  
                    arr[i] = arr[i + 1];// 交换数据  
                    arr[i + 1] = temp;  
                }  
            }  
            j++;  
        }  
    }  
 
    static void Main(string[] args)  
    {  
        int[] array = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };  
        EbullitionSorter e = new EbullitionSorter ();  
        e.Sort(array);  
        foreach (int m in array)  
            Console.WriteLine("{0}", m);  
 
    }  
}  
//快速排序  
class QuickSorter  
{  
    private void swap(ref int l, ref int r)  
    {  
        int temp;  
        temp = l;  
        l = r;  
        r = temp;  
    }  
    public void Sort(int[] list, int low, int high)  
    {  
        int pivot;// 存储分支点  
        int l, r;  
        int mid;  
        if (high <= low)  
            return;  
        else if (high == low + 1)  
        {  
            if (list[low] > list[high])  
                swap(ref list[low], ref list[high]);  
            return;  
        }  
        mid = (low + high) >> 1;  
        pivot = list[mid];  
        swap(ref list[low], ref list[mid]);  
        l = low + 1;  
        r = high;  
        do 
        {  
            while (l <= r && list[l] < pivot)  
                l++;  
            while (list[r] >= pivot)  
                r--;  
            if (l < r)  
                swap(ref list[l], ref list[r]);  
        } while (l < r);  
        list[low] = list[r];  
        list[r] = pivot;  
        if (low + 1 < r)  
            Sort(list, low, r - 1);  
        if (r + 1 < high)  
            Sort(list, r + 1, high);  
    }  
 
 
 
    static void Main(string[] args)  
    {  
        int[] iArrary = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };  
        QuickSorter q = new QuickSorter();  
        q.Sort(iArrary, 0, 13);  
        for (int m = 0; m <= 13; m++)  
            Console.WriteLine("{0}", iArrary[m]);  
    }  
}  
//插入排序  
public class InsertionSorter  
{  
    public void Sort(int[] arr)  
    {  
        for (int i = 1; i < arr.Length; i++)  
        {  
            int t = arr[i];  
            int j = i;  
            while ((j > 0) && (arr[j - 1] > t))  
            {  
                arr[j] = arr[j - 1];// 交换顺序  
                --j;  
            }  
            arr[j] = t;  
        }  
    }  
    static void Main(string[] args)  
    {  
        int[] array = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };  
        InsertionSorter i = new InsertionSorter();  
        i.Sort(array);  
        foreach (int m in array)  
            Console.WriteLine("{0}", m);   
    }  
}  
//希尔排序  
public class ShellSorter  
{  
    public void Sort(int[] arr)  
    {  
        int inc;  
        for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ;  
        for (; inc > 0; inc /= 3)  
        {  
            for (int i = inc + 1; i <= arr.Length; i += inc)  
            {  
                int t = arr[i - 1];  
                int j = i;  
                while ((j > inc) && (arr[j - inc - 1] > t))  
                {  
                    arr[j - 1] = arr[j - inc - 1];//交换数据  
                    j -= inc;  
                }  
                arr[j - 1] = t;  
            }  
        }  
    }  
 
    static void Main(string[] args)  
    {  
        int[] array = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };  
        ShellSorter s = new ShellSorter();  
        s.Sort(array);  
        foreach (int m in array)  
            Console.WriteLine("{0}", m);   
 
    }  
} 
C#经典排序算法的实现与应用 htmltable {th, td {th {pre {简介:排序算法在编程中是数据处理的关键,本文介绍C#实现的五种经典排序算法:冒泡排序、快速排序、插入排序、选择排序和归并排序。每种算法都有其优势和适用场景,理解这些算法的工作原理和条件对提升编程能力至关重要。本文不仅解释了这些算法的原理,还提供了C#中的实现细节,并探讨了在不同数据规模和需求下的选择标准。 阅读详情

相关推荐

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

C# 排序的多种实现方式

C# 排序的多种实现方式

weixin_42045136的博客 2961

Wireshark、Fiddler、Charles 三款抓包工具的本质差异与选型指南

抓包工具是网络调试与接口分析的基础能力,其核心在于理解OSI模型分层原理——不同工具工作在不同协议层级,解决不同维度问题。Wireshark面向网络层(L2/L3),可捕获原始数据帧与TCP握手细节,适用于DNS异常、丢包重传等底层问题定位;Fiddler和Charles则工作在应用层(L7),作为HTTP(S)代理实现HTTPS解密、请求改写与弱网模拟,是API调试与移动端测试的首选。技术价值体现在:精准匹配问题域(如证书固定需Fiddler脚本绕过,iOS调试依赖Charles证书信任链),避免‘用显微

weixin_28831341的博客 253

【算法】C#实现经典排序算法总结(附动图)

自行整理的C#常见算法笔记。

好学若饥,谦卑若愚。 5248

【车载以太网】ATU(Address Translation Unit / Address Table Unit)

【车载以太网】ATU(Address Translation Unit / Address Table Unit)

天赐好车的博客 152

基于STM32F1XX 、HAL库的OPT4001-Q1环境光传感器驱动应用C语言程序设计

OPT4001-Q1 的输出是半对数 的,具有 9 个二进制对数满量程照度范围,每个范围内具有高度线性响应,使得 PicoStar™ 型号的测量能力为 312.5μlux 至 84klux,USON 型号的测量能力为 400µlux 至 107klux。// 禁用中断(示例)

PP_Cottage的博客 461

C# 排序的多种实现方式(经典)

排序是我们编程时的常用操作,实现方式也有很多种,本篇文章列举几种我常用的用法,希望对大家有用!

寒冰屋的专栏 4386

使用Simulink进行带通滤波器的设计与仿真研究

摘要:本文介绍利用Simulink设计和仿真带通滤波器的方法。通过定义系统需求(保留100-500Hz信号),创建包含多频信号源、加法器和巴特沃斯滤波器的模型,重点展示滤波器频率选择特性。详细步骤包括模块配置、参数设置(中心频率300Hz、带宽400Hz)、信号连接及可视化分析。实验验证了带通滤波器有效提取目标频段信号的能力,为复杂信号处理系统开发提供基础框架。所需工具为MATLAB R2023a和DSPSystemToolbox。

xiaoheshang_123的博客 326

C#实现常用的几种排序算法

//冒泡排序 void BubbleSort(int[] array, int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (array[j] > array[j + 1]) { ...

qq_43282959的博客 662

扩散模型实战:从零开始训练手写数字生成模型

手写数字的数据集是绝大部分炼丹师的深度学习初恋,这篇博客以代码为主,手把手带读者搭建一个基于扩散模型的手写数字生成模型,非常适合刚接触扩散模型的初学者学习。

沉迷单车的追风少年 1914

SI案例分享--考虑ESD保护二极管的差分线阻抗仿真

PCB设计中的cut out参考面早已是SI评估中常用的阻抗优化方式,通过合理的仿真建模,可以提供合适的设计参考,并保持与测试结果的高度一致性。

一只豌豆象的博客 1437

C#实现所有经典排序算法汇总

C#实现所有经典排序算法1、选择排序 选择排序class SelectionSorter    {        private int min;        public void Sort(int[] arr)        {            for (int i = 0; i         {                min = i;                for

cuiqilong的专栏 476

Apollo Planning决策规划算法代码详细解析 (2):Scenario执行

上一章节讲Scenario的决策逻辑,当确认当前Scenario后,本章节继续深入讲解在代码中,Scenario的执行过程。Scenario的Process()函数根据配置文件顺序执行stage,并判断目前处于哪个stage。当确认好stage后调用该stage对应的Process()函数,来进行具体的规划任务。 码字不易,喜欢的朋友们麻烦点个关注与赞。 在本文你将学到下面这些内容: Scenario的Process()函数的作用于调用方式; Scenario对象的初始化方法; 如何给每个Scen

自动驾驶Player的博客 5609

【共享】C#实现所有经典排序算法

这里需要知道dapo的reward_manager_cls 具体是什么,因为reward需要batch数据才能计算,因此对于reward manager咱们先按下不表(其实dapo对应的reward_manager_cls是在verl/verl/workers/reward_manager/dapo.py),先去dapo_ray_trainer.py看一下batch是怎么采样的,再回来仔细阅读reward的具体计算方法。# max_num_gen_batches是最多可以使用的gen_batch的个数。

IfB1XRsdh的博客 403

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c#实现所有经典排序算法

c#实现所有经典排序算法//选择排序  class selectionsorter  {      private int min;      public void sort(int[] arr)      {          for (int i = 0; i < arr.length - 1; ++i)          {           

blog之antyi 484

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C#实现所有经典排序算法[转载]

原文出处:http://www.cnblogs.com/dreamof/archive/2009/05/05/1450058.html C#实现所有经典排序算法1、选择排序 选择排序classSelectionSorter{privateintmin;publicvoidSort(int[]arr){...

a443407564的博客 119

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C#实现经典排序算法

1、选择排序 //选择排序class SelectionSorter { private int min; public void Sort(int[] arr) { for (int i = 0; i < arr.Length - 1; ++i) {

清山博客 1750
上一篇: 弹出窗口总结
下一篇: C# 诠释常用排序算法
dooooooooit
博客等级 码龄18年 3粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值