C# 几种常用排序方法示例

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌 本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的 阅读详情
 /// <summary>
        /// 冒泡排序
        /// </summary>
        static void BubbleSort()
        {
            int[] array = { 5, 2, 7, 4, 8, 9, 1, 3, 6 };
            int count = 0;
            bool flag = true;
            for (int i = 0; i < array.Length; i++)
            {
                flag = true;
                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;
                        flag = false;
                    }
                }
                count++;
                if (flag)
                {
                    break;
                }
            }
            foreach (var item in array)
            {
                Console.WriteLine(item);
            }

        }
        /// <summary>
        /// 选择排序
        /// </summary>
        static void SelectionSort()
        {
            int[] array = { 5, 2, 7, 4, 8, 9, 1, 3, 6 };
            int minIndex = 0;
            for (int i = 0; i < array.Length - 1; i++)
            {
                minIndex = i;
                for (int j = 1 + i; j < array.Length; j++)
                {
                    if (array[j] < array[minIndex])
                    {
                        // 保存最小元素的下标
                        minIndex = j;
                    }
                }
                // 此时已经找到最小元素的下标
                // 将最小元素与前面的元素交换
                int temp = array[minIndex];
                array[minIndex] = array[i];
                array[i] = temp;
            }
            foreach (var item in array)
            {
                Console.WriteLine(item);
            }
        }
        /// <summary>
        /// 插入排序
        /// </summary>
        static void InsertionSort()
        {
            int[] array = { 5, 2, 7, 4, 8, 9, 1, 3, 6 };
            for (int i = 1; i < array.Length; i++)
            {
                //定义待插入的数
                int insertValue = array[i];
                //找到待插入数的前一个数的下标
                int insertIndex = i - 1;
                while (insertIndex >= 0 && array[insertIndex] > insertValue)
                {
                    array[insertIndex + 1] = array[insertIndex];
                    insertIndex--;
                }
                array[insertIndex + 1] = insertValue;
            }
            foreach (var item in array)
            {
                Console.WriteLine(item);
            }
        }
        /// <summary>
        /// 希尔排序
        /// </summary>
        static void ShellSort()
        {
            int[] array = { 5, 2, 7, 4, 8, 9, 1, 3, 6 };
            for (int gap = array.Length / 2; gap > 0; gap /= 2)
            {
                Console.WriteLine("组数:" + gap);
                //对数组进行分组
                for (int i = gap; i < array.Length; i++)
                {
                    for (int j = i - gap; j >= 0; j -= gap)
                    {
                        if (array[j] > array[j + gap])
                        {
                            int temp = array[j];
                            array[j] = array[j + gap];
                            array[j + gap] = temp;
                        }
                    }

                }
            }
            foreach (var item in array)
            {
                Console.WriteLine(item);
            }
        }
【算法】—前缀和与差分详解 前缀和指一个数组的某下标之前的所有数组元素的和(即数列的前n项求和),前缀和是一种重要的预处理,能够降低算法的时间复杂度,可以快速地求出某一段的和,对于处理区间之间的问题是往往十分高效相比较其他算法而言,前缀和更像是一种解题的技巧,一种优化方式输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和5 32 1 3 6 41 21 32 4123453610。 阅读详情

相关推荐

告别手动画图!用Cadence SKILL写一个参数化电感PCell(附完整代码)

本文详细介绍了如何使用Cadence SKILL语言开发参数化电感PCell,实现电感版图的自动化生成。通过动态调整线宽、圈数等几何参数,自动创建端口并进行工艺规则校验,大幅提升高频电路设计效率。附完整代码示例,帮助工程师快速掌握PCell开发技巧。

weixin_30684743的博客 366

C#面试易错题

1.在C#中,int[][]是定义一个int型的二维数组? 2. 请问, o.MethodA 调用的是? 3.以下关于 ref 和 out 描述哪些项是正确的?() 4.异常类对象均为System.Exception类或其子类的对象? 5.接口是一种引用类型,在接口中可以声明( ),但不可以声明公有的域或私有的成员变量。 6.说法正确的是 7.在C#中,索引器是专门用来访问对象中的数组信息的 8.接口中的成员不可以有访问域修饰符,但可以有其它修饰符? 9.在C#中,装箱操作是将值类型转化成引用类型? 10.

m0_48781656的博客 1299

Optisystem软件与Matlab软件的联合数据读取

目录 Matlab软件程序编写 Optisystem软件的连接与设置 数据读取结果 Matlab软件程序编写 利用Matlab软件按照下图编写程序,保存为getdata.m文件。 OutputPort1 =InputPort1; fileID=fopen('OSAdata.txt','wt'); fprintf(fileID,'%f\n',OutputPort1.Sampled.Signal); fclose(fileID); Optisystem软件的连接与设置 (以基于线性插值法

Vivian_Chen_的博客 4853

c#中int[][]和int[,]的区别与比较

c#中int[,]和int[][]的区别

qq_42607586的博客 2614

逆变器方案(工频全套)工频正弦波逆变器开发板全套设计资

逆变器方案(工频全套)工频正弦波逆变器开发板,24V-72V通用12只TO-247封装MOS管,额定输出功率6500W以下;配有触摸屏操作界面,运行数据一目了然,带市电互补UPS功能,可选择电池优先或市电有限工作,我们的开发板均从实战角度出发,让您的学习更便捷,包含全套设计资料,PCB.原理图.源代码,程序均有中文注释,MCU选用美国微芯公的PIC-8位单片机,民用数字电源首选单片机,抗干扰能力强,运行稳定。...

m0_73494033的博客 892

JetBrains Air:多Agent协同的IDE运行时架构解析

IDE智能编程正从单模型增强迈向多Agent协同范式。多Agent架构通过职责分离、上下文精简与运行时隔离,显著提升代码生成稳定性与合规性;其核心依赖轻量级嵌入式运行时(如ARL),支持AST级内存共享、eBPF安全拦截与毫秒级冷启动。该架构天然适配本地化部署、离线开发与高安全合规场景(如PCI-DSS、金融内网),并为Java/Python/TS等语言提供可扩展的规则驱动开发流水线。JetBrains Air正是这一技术路径的工程化落地代表。

weixin_30443075的博客 570

C#中int[][]与int[,]的比较

一、定义 首先我们定义这样两个对象 int[,] arr1 = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int[][] arr2 = { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 }, new int[] { 7, 8, 9 } }; 二、维数(秩) 然后编译上面的对象,看看值是怎样的 从上图中...

背水的博客 3664

QCPColorMap实现瀑布图

QCPColorMap实现真正的瀑布图

pf1873252141的博客 5270

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

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

寒冰屋的专栏 4386

VisDrone2019数据集实战:从下载到YOLO格式转换的完整指南

本文提供了一份完整的VisDrone2019数据集实战指南,详细介绍了从数据集下载、理解其独特的标注格式,到转换为YOLO模型可直接训练格式的全过程。通过清晰的代码示例和步骤讲解,帮助读者掌握处理复杂无人机视觉数据集的核心技能,为基于YOLO的目标检测模型训练做好准备。

weixin_29165725的博客 384

【实战指南】利用CAN适配器高效调试CAN总线通信

本文提供了一份利用CAN适配器高效调试CAN总线通信的实战指南。文章从硬件连接、终端电阻配置、软件参数设置等基础环节入手,详细解析了CAN适配器作为关键调试工具的工作原理与使用方法,并针对常见的通信故障提供了系统化的问题排查思路,帮助工程师快速打通通信链路,提升调试效率。

weixin_28285943的博客 412

C#几种常见的排序方式

1.冒泡排序 原理:比较两个相邻的元素,将其中大的一个元素移到后方,这样第一轮比较完成后,最大的元素就排到了元素的末尾 通过几轮的比较就可以将 所有的元素进行从大到小的排序 我们假定有一个数组 int[] arr={100,30,50,200,60,79,-10,-50,0}; 第一轮比较100和30,如果左边的元素大于右边的元素,则交换 比较的结果是30 100,以此类推100 和50...

weixin_41765385的博客 1万+

Xilinx DDR3 MIG IP核设计--汇总导航

快速上手Xilinx DDR3 IP核----汇总篇

孤独的单刀 2万+

使用几种常用排序方法对C#数组进行排序的代码

工作之余,把写代码过程中比较重要的一些代码段收藏起来,如下的代码是关于使用几种常用排序方法对C#数组进行排序的代码,希望能对各朋友有帮助。 using System; namespace DataStruct { public class Sorter { public static void BubbleSort(int[] lis...

weixin_33862514的博客 242

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

C#实现几种常用的排序方法 一、选择排序 static void SelectionSort(int[] array) { for (int i = 0; i < array.Length; i++) { int temp = i; for (int j = i+1; j < array.Length; j++) ...

qq_39111577的博客 1875

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

c#几种排序方法

MergeSort`方法首先检查序列长度是否大于1,然后找到中间点,分别对左右两部分递归调用自身进行排序,最后通过`Merge`方法将排序好的两个子序列合并成完整有序的序列。它的工作方式是每一次从未排序序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。冒泡排序通过重复遍历待排序的数列,每次遍历时都将相邻两个元素进行比较,如果他们的顺序错误(例如对于升序排列来说,前面的元素大于后面的元素),就交换这两个元素的位置。

m0_75039529的博客 850

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C#对List中的数据排序的几种方法

文章目录前言一、Sort()方法二、对自定义类型进行排序1.继承接口IComparable<>2.通过委托方法进行排序3.通过匿名函数、Lambda表达式排序 前言 在C#中List<>是一个很好用的容器,采用泛型避免了ArrayList中经常出现的拆箱装箱,List<>中还提供了很多操作数据集合的方法。我们往往要对集合中的数据进行排序操作,下面简单介绍几种方法。 一、Sort()方法 直接使用成员方法Sort()只能对C#本身的几种类型进行排序,比如int,floa

IQsuper的博客 1万+

几种常用的C#排序方法简介

这五种C#排序方法,其实在其他语言平台中也是常见的,因此C#排序方法也可以说是其他语言的排序方法,只不过实现的语言不同罢了。 在网上看到很多经典排序方法,算法分: 1:插入排序 a.直接插入排序 b.希尔排序 2:交换排序 a.冒泡排序 b.快速排序 3:选择排序 a.直接选择排序 4:归并排序 a.归并排序 5:分配排序 a.箱排序 b.基数排序 本人常用的三种C#排...

u014712365的博客 149

C#几种排序方法

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page ...

weixin_30642305的博客 86

C# 数组的几种排序方法

1.直接插入排序法 for (int i = 0; i < arr.Length; i++) { int temp = arr[i]; int j = i; while ((j>0)&&(arr[j-1]>t...

weixin_34050519的博客 677

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

详见:http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.3.1.1.htm 在网上搜罗了一下,各种排序方法的实现:     1:插入排序 a.直接插入排序  b.希尔排序     2:交换排序 a.冒泡排序      b.快速排序     3:选择排序 a.直接选择排序     4

AnYuanLzh 1732

C# 几种常见的排序方法

1.冒泡排序 1 //冒泡排序 2 public void BubbleSort(int[] list) 3 { 4 int i, j, temp; 5 bool done = false; 6 j = 1; 7 while ((j ...

weixin_34210740的博客 292

C#中几种排序的方法

一,冒泡排序 /// &lt;summary&gt;  /// bubbleSort;  ///         /// /*理解其实程序就是思路的复述而已*/  /// &lt;/summary&gt;  /// &lt;param name="desti"&gt;目标数组&lt;/param&gt;  /// &lt;param name="swapTimes"&gt;交换次数&am

每天进步一点点,微笑面对全世界! 218
上一篇: 实现开机使用浏览器打开某网页并自动全屏显示
下一篇: Unity FSM有限状态机
爱尚游Bin
博客等级 码龄9年 86粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值