首页 > 编程语言 >排序算法详解 C# 版

排序算法详解 C# 版

时间:2023-12-21 14:47:36浏览次数:40  
标签:temp minVal C# ++ int lst 详解 排序

概述

一般使用的八大排序算法是:插入排序、选择排序、冒泡排序、希尔排序、归并排序、快速排序、堆排序、基数排序,每个方法有其适合的使用场景,可以根据具体数据进行选择.

冒泡排序

        //冒泡排序,比较相临两个数的大小,如 lst[i]>lst[i+1],则互换位置
        static int[] BubbleSort(int[] lst)
        {
            for (int i = 0; i < lst.Length - 1; i++)
            {
                for (int j = 0; j < lst.Length; j++)
                {
                    if (lst[i] > lst[j]) 
                    {
                        int temp = lst[j];
                        lst[j] = lst[i];
                        lst[i] = temp;
                    }
                }
            }
            return lst;
        }

选择排序

        //选择排序,找最大/最小值加入列表
        static int[] SelectSort(int[] lst)
        {
            for (int i = 0; i < lst.Length - 1; i++)
            {
                int minVal = lst[i];
                int minIndex = i;
                for (int j = i + 1; j < lst.Length; j++)
                {
                    if (minVal > lst[j])
                    {
                        minIndex = j;
                        minVal = lst[j];
                    }
                }
                int temp = lst[i];
                lst[i] = minVal;
                lst[minIndex] = temp;
            }
            return lst;
        }

标签:temp,minVal,C#,++,int,lst,详解,排序
From: https://www.cnblogs.com/xueweil/p/16531770.html

相关文章

  • vscode 错误 go: go.mod file not found in current directory or any parent directo
    前言安装VSCODE后,新建立的GO文件按F5出错。go:go.modfilenotfoundincurrentdirectoryoranyparentdirectory;see'gohelpmodules'处理步骤开启gomodules功能命令行输入goenv-wGO111MODULE=on建立src目录比如我程序文件夹名为gosrc,则目录为gosrc|_src......
  • [Ynoi2007]rfplca/[CF1491H] Yuezheng Ling and Dynamic Tree
    题目描述给定一棵大小为\(n\)的\(1\)为根节点的树,树用如下方式给出:输入\(a_2,a_3,\dots,a_n\),保证\(1\leqa_i<i\),将\(a_i\)与\(i\)连边形成一棵树。接下来有\(m\)次操作,操作有两种:1lrx令\(a_i=\max(a_i-x,1)(l\leqi\leqr)\)。2uv查询在当前的\(a\)......
  • maven toolchains 简单说明
    很多时候我们项目可以会包含需要不同jdk构建,比如有些只能使用jdk8,有些需要使用jdk11,toolchains可以帮助我们解决此问题一般玩法创建一个toolchains.xml目录,放到home目录下,里边配置实际需要的jdk版本(我们的环境可以安装多jdk)项目构建的时候(使用的插件)使用配置的工具参考......
  • EDA365 Skill找不到Cadence安装路径的原因与解决办法
    软件版本Cadence17.4参考来源:https://blog.csdn.net/weixin_42837669/article/details/119832994EDA365Skill安装,无法检测到Cadence安装路径,请确认Cadence软件是否已经安装.以下未尝试 ......
  • cjson 用法
     1、修改字典的值cJSON_SetValuestring(objectItem,value)//先获取objectTempPtr=cJSON_GetObjectItem(TempPtr,"nm");//修改该object的值cJSON_SetValuestring(TempPtr,"guxiangdehai");2、删除数组里面的值cJSON_DeleteItemFromArray(Array,index);//Array要......
  • Cloudeye对接Prometheus实现华为云全方位监控
    本文分享自华为云社区《Cloudeye对接Prometheus实现华为云全方位监控》,作者:可以交个朋友。一、背景云眼系统Cloudeye服务为我们提供了针对弹性云服务器、宽带等资源的立体化监控平台。帮助我们全面了解华为云上的资源使用情况、业务的运行状况。将华为云Cloudeye服务接入prom......
  • c# for循环下使用try catch导致性能问题
    在for循环里,有8w数据,结果需要10+分钟才遍历完(生产环境下),结果发现导致耗时的代码如下try{ritem.Qty=Convert.ToDecimal(value);}catch(Exceptione){Logger.Info(e.ToString());ritem.Qty=0;}将以上代码修改为如下后,执行需要20秒。因为每次异常被抛出时......
  • # cesium 截取图片
    cesium截取图片没啥好说的,直接贴代码吧 toImg(){if(viewer){viewer.scene.render();letcanvas=viewer.scene.canvas;letimage=canvas.toDataURL("image/png").replace("image/png","image/octet-stream");......
  • Jackson给给指定类设置序列化规则
    背景业务中需要对返回给APP端的数据进行特殊处理,包括:null值转换成空字符串日期(LocalDateTime)类型转换成时间戳金额根据用户Locale做格式化需要保证不影响内部其他服务的互相调用,因此让所有返回给APP的VO对象实现自定义的Vo接口,然后指定对Vo接口的类进行对应的转换。实现co......
  • 嵌入式教程_DSP教学实验箱操作:5-14 灰度图像二值化(LCD显示)
    一、实验目的学习灰度图像二值化的原理,掌握图像的读取方法,并实现在LCD上显示二值化前后的图像。二、实验原理图像二值化图像的二值化处理就是将图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可......