C#编写的 8种初级+高级排序方法

【C#】C#高级语法 【C#】C#高级语法 1、特性(Attribute): 用于添加元数据。在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。 预定义特性:AttributeUsage;Conditional;Obsolete 自定义特性:一个新的自定义特性应派生自System.Attribute类。 2、反射(Refl 阅读详情
程序代码:

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5.  
  6. namespace c_sharp_sort 
  7. { 
  8.     class Program 
  9.     { 
  10.         static void Main(string[] args) 
  11.         { 
  12.             int[] test7 = { 21, 13, 321, 231, 43, 7, 65, 18, 48, 6 }; 
  13.             heapsort(test7, 0, 9);                                         //堆排序 
  14.             foreach (int a in test7) 
  15.                 Console.Write(a.ToString().PadRight(4)); 
  16.             Console.WriteLine(); 
  17.  
  18.             int[] test6 = { 21, 13, 321, 231, 43, 7, 65, 18, 48, 6 }; 
  19.             radixsort(test6, 0, 9, 2);                                         //基数排序(第4个参数是数组中最大数的10的最大次瞑) 
  20.             foreach (int a in test6) 
  21.                 Console.Write(a.ToString().PadRight(4)); 
  22.             Console.WriteLine(); 
  23.  
  24.             int[] test0 = { 21, 13, 321, 231, 43, 7, 65, 18, 48, 6 };          
  25.             insertsort(test0, 10);                                             //插入排序 
  26.             foreach (int a in test0) 
  27.                 Console.Write(a.ToString().PadRight(4)); 
  28.             Console.WriteLine(); 
  29.  
  30.            int[] test1 = { 21, 13,321, 231, 43, 7, 65, 18, 48, 6 }; 
  31.             newinsertsort(test1, 10);                                          //折半插入排序 
  32.             foreach (int a in test1) 
  33.                 Console.Write(a.ToString().PadRight(4)); 
  34.             Console.WriteLine(); 
  35.  
  36.                  int[] test2 = { 21, 13,321, 231, 43, 7, 65, 18, 48, 6 }; 
  37.             shellsort(test2, 10);                                             //希尔排序 
  38.             foreach (int a in test2) 
  39.                 Console.Write(a.ToString().PadRight(4)); 
  40.             Console.WriteLine(); 
  41.  
  42.             int[] test3 = { 21, 13, 321, 231, 43, 7, 65, 18, 48, 6 }; 
  43.             paopaosort(test3, 10);                                            //冒泡排序 
  44.             foreach (int a in test3) 
  45.                 Console.Write(a.ToString().PadRight(4)); 
  46.             Console.WriteLine(); 
  47.  
  48.             int[] test4 = { 21, 13, 321, 231, 43, 7, 65, 18, 48, 6 }; 
  49.             fastsort(test4, 0, 9);                                            //快速排序 
  50.             foreach (int a in test4) 
  51.                 Console.Write(a.ToString().PadRight(4)); 
  52.             Console.WriteLine(); 
  53.  
  54.             int[] test5 = { 21, 13, 321, 231, 43, 7, 65, 18, 48, 6 }; 
  55.             selectsort(test5, 10);                                           //选择排序 
  56.             foreach (int a in test5) 
  57.                 Console.Write(a.ToString().PadRight(4)); 
  58.             Console.WriteLine(); 
  59.  
  60.             Console.Read(); 
  61.         } 
  62.         static public void heapsort(int[] array, int begin, int end)          //堆排序 
  63.         { 
  64.             int temp, i, j, length; 
  65.             for (i = (end - begin) / 2; i >= begin; i--)                                             //建初堆 
  66.             { 
  67.                 j = i; 
  68.                 while (j <= (end - begin) / 2) 
  69.                 { 
  70.                     if ((2 * j + 2) <= end) 
  71.                     { 
  72.                         if (array[2 * j + 1] > array[2 * j + 2] && array[2 * j + 1] > array[j]) 
  73.                         { 
  74.                             temp = array[2 * j + 1]; 
  75.                             array[2 * j + 1] = array[j]; 
  76.                             array[j] = temp; 
  77.                             j = 2 * j + 1; 
  78.                         } 
  79.                         else if (array[2 * j + 1] < array[2 * j + 2] && array[2 * j + 2] > array[j]) 
  80.                         { 
  81.                             temp = array[j]; 
  82.                             array[j] = array[2 * j + 2]; 
  83.                             array[2 * j + 2] = temp; 
  84.                             j = 2 * j + 2; 
  85.                         } 
  86.                         else 
  87.                             break; 
  88.                     } 
  89.                     else 
  90.                     { 
  91.                         if (array[2 * j + 1] > array[j]) 
  92.                         { 
  93.                             temp = array[2 * j + 1]; 
  94.                             array[2 * j + 1] = array[j]; 
  95.                             array[j] = temp; 
  96.                             j = 2 * j + 1; 
  97.                         } 
  98.                         break; 
  99.                     } 
  100.                 } 
  101.             } 
  102.             for (length = end; length > begin; length--)                              //首尾交换 
  103.             { 
  104.                 temp = array[length]; 
  105.                 array[length] = array[0]; 
  106.                 array[0] = temp; 
  107.                 j = 0; 
  108.                 while (j < (length - begin-1) / 2)                                   //调整堆 
  109.                 { 
  110.                     if ((2 * j + 2) <= end) 
  111.                     { 
  112.                         if (array[2 * j + 1] > array[2 * j + 2] && array[2 * j + 1] > array[j]) 
  113.                         { 
  114.                             temp = array[2 * j + 1]; 
  115.                             array[2 * j + 1] = array[j]; 
  116.                             array[j] = temp; 
  117.                             j = 2 * j + 1; 
  118.                         } 
  119.                         else if (array[2 * j + 1] < array[2 * j + 2] && array[2 * j + 2] > array[j]) 
  120.                         { 
  121.                             temp = array[j]; 
  122.                             array[j] = array[2 * j + 2]; 
  123.                             array[2 * j + 2] = temp; 
  124.                             j = 2 * j + 2; 
  125.                         } 
  126.                         else 
  127.                             break; 
  128.                     } 
  129.                 } 
  130.             } 
  131.         } 
  132.  
  133.         static public void insertsort(int[] array, int length)   //直接插入排序 
  134.         { 
  135.             int i,j,temp; 
  136.             for (i = 1; i < length; i++) 
  137.             { 
  138.                 temp = array[i]; 
  139.                 j=i-1; 
  140.                 while (temp<array[j]) 
  141.                 { 
  142.                     array[j + 1] = array[j]; 
  143.                     j = j - 1; 
  144.                     if (j == -1) 
  145.                     { 
  146.                         break; 
  147.                     } 
  148.                 } 
  149.                 array[j+1]=temp; 
  150.             } 
  151.         } 
  152.  
  153.         static public void newinsertsort(int[] array, int length)   //折半插入排序 
  154.         { 
  155.             int low,high, i,j,temp; 
  156.             for (i = 1; i <length; i++) 
  157.             { 
  158.                 temp = array[i]; 
  159.                 low = 0; high = i - 1; 
  160.                 j= (high-low)/2; 
  161.                 while (low<=high)        
  162.                 { 
  163.                     if (low == high) 
  164.                     { 
  165.                         if (array[0] > temp) 
  166.                             j = 0; 
  167.                         else 
  168.                             j = 1; 
  169.                         break; 
  170.                     } 
  171.                     else if (low == high - 1) 
  172.                     { 
  173.                         if (array[j + 1] < temp) 
  174.                             j += 2; 
  175.                         else if (array[j] < temp) 
  176.                             j++; 
  177.                         break; 
  178.                     } 
  179.                     else if (array[j] < temp) 
  180.                     { 
  181.                         low = j; 
  182.                         j += (high - low) / 2; 
  183.                     } 
  184.                     else if (array[j] > temp) 
  185.                     { 
  186.                         high = j; 
  187.                         j= low+(high - low) / 2; 
  188.                     } 
  189.                     else 
  190.                         break;                   
  191.                 } 
  192.                 for (int n = i-1 ; n >= j; n--) 
  193.                     array[n + 1] = array[n]; 
  194.                 array[j] = temp; 
  195.             } 
  196.         } 
  197.  
  198.         static public void shellsort(int[] array, int length)                 //希尔排序(基于直接插入排序) 
  199.         { 
  200.             int i, j,k,delta=length/2,temp; 
  201.             while(delta!=0)                                                 //delte为分组递增值 
  202.             { 
  203.                 for (i = 0; i < delta; i++) 
  204.                 { 
  205.                     for (j = i + delta; j < length; j += delta) 
  206.                     { 
  207.                         temp = array[j]; 
  208.                         k = j - delta; 
  209.                         while (temp < array[k])                             //对每组进行直接插入排序 
  210.                         { 
  211.                             array[k + delta] = array[k]; 
  212.                             k = k - delta; 
  213.                             if (k == i - delta) 
  214.                             { 
  215.                                 break; 
  216.                             } 
  217.                         } 
  218.                         array[k + delta] = temp; 
  219.                     } 
  220.                     j -= delta; 
  221.                     if (array[j] < array[i])                              //2组之间首位进行交换排序 
  222.                     { 
  223.                         temp = array[j]; 
  224.                         array[j] = array[j]; 
  225.                         array[j] = temp; 
  226.                     }                     
  227.                 } 
  228.                 delta /= 2; 
  229.             } 
  230.         } 
  231.  
  232.         static public void paopaosort(int[] array, int length)          //冒泡排序 
  233.         { 
  234.             int i, j, temp; 
  235.             j=length; 
  236.             while(j!=0) 
  237.             { 
  238.                 for (i = 0; i < j-1; i++) 
  239.                 {  
  240.                     if (array[i]>array[i+1]) 
  241.                     { 
  242.                         temp=array[i]; 
  243.                         array[i]=array[i+1]; 
  244.                         array[i+1]=temp; 
  245.                     } 
  246.                 } 
  247.                 j--; 
  248.             } 
  249.         } 
  250.  
  251.         static public void fastsort(int[] array, int begin,int end)         //快速排序 
  252.         { 
  253.             if (begin < 0 || end < 0 || begin >end) 
  254.                 return; 
  255.             int left = begin, right = end, temp;                            //经典的快排 
  256.             temp = array[left]; 
  257.             while (right != left) 
  258.             { 
  259.                 while (temp < array[right] && right>left) 
  260.                     right--; 
  261.                 if (right > left) 
  262.                 { 
  263.                     array[left] = array[right]; 
  264.                     left++; 
  265.                 } 
  266.                 while (temp > array[left] && right > left) 
  267.                     left++; 
  268.                 if (right > left) 
  269.                 { 
  270.                     array[right] = array[left]; 
  271.                     right--; 
  272.                 } 
  273.             } 
  274.             array[right] = temp; 
  275.             fastsort(array, right + 1, end); 
  276.             fastsort(array, begin, right-1);           
  277.         } 
  278.         static public void selectsort(int[] array, int length)        //选择排序 
  279.         { 
  280.             int i=0, j, min,temp_array,temp; 
  281.             while (i < length - 1) 
  282.             { 
  283.                 min = array[i]; 
  284.                 temp = i; 
  285.                 for (j = i+1; j < length; j++) 
  286.                 { 
  287.                     if (array[j] < min) 
  288.                     { 
  289.                         min = array[j]; 
  290.                         temp = j; 
  291.                     } 
  292.                 } 
  293.                 temp_array = array[i]; 
  294.                 array[i] = array[temp]; 
  295.                 array[temp] = temp_array; 
  296.                 i++; 
  297.             }            
  298.         } 
  299.         static public void radixsort(int[] array, int begin,int last, int pow)     //基数排序 
  300.         { 
  301.             Queue<int>[] queue = new Queue<int>[10];                               //利用泛型队列来存储筛选分组 
  302.             queue[0] = new Queue<int>(); 
  303.             queue[1] = new Queue<int>(); 
  304.             queue[2] = new Queue<int>(); 
  305.             queue[3] = new Queue<int>(); 
  306.             queue[4] = new Queue<int>(); 
  307.             queue[5] = new Queue<int>(); 
  308.             queue[6] = new Queue<int>(); 
  309.             queue[7] = new Queue<int>(); 
  310.             queue[8] = new Queue<int>(); 
  311.             queue[9] = new Queue<int>(); 
  312.             int[] nn={0,0,0,0,0,0,0,0,0,0}; 
  313.             int x, p = pow, n,i; 
  314.             while (p >= 0) 
  315.             { 
  316.         for (i=begin;i<=last;i++) 
  317.             {int sum=array[i];             
  318.             n=pow-p; 
  319.             while(n!=0) 
  320.             { 
  321.             sum=sum/10; 
  322.             n--;} 
  323.             sum=sum%10; 
  324.             switch (sum) 
  325.             {case 0: queue[0].Enqueue(array[i]);nn[0]++;break; 
  326.             case 1: queue[1].Enqueue(array[i]); nn[1]++; break; 
  327.             case 2: queue[2].Enqueue(array[i]); nn[2]++; break; 
  328.             case 3: queue[3].Enqueue(array[i]); nn[3]++; break; 
  329.             case 4: queue[4].Enqueue(array[i]); nn[4]++; break; 
  330.             case 5: queue[5].Enqueue(array[i]); nn[5]++; break; 
  331.             case 6: queue[6].Enqueue(array[i]); nn[6]++; break; 
  332.             case 7: queue[7].Enqueue(array[i]); nn[7]++; break; 
  333.             case 8: queue[8].Enqueue(array[i]); nn[8]++; break; 
  334.             case 9: queue[9].Enqueue(array[i]); nn[9]++; break; 
  335.             } 
  336.             }  //for 
  337.     x=n=0; 
  338.     for (i=0;i<10;i++) 
  339.         {n=n+x; 
  340.         x=nn[i]; 
  341.         while (nn[i]!=0) 
  342.         { 
  343.             array[n + x - nn[i]] = queue[i].Peek(); 
  344.             queue[i].Dequeue(); 
  345.             nn[i]--; 
  346.             }}           
  347.         p--;}    //while 
  348.         } 
  349.     } 
  350. } 
C#实现冒泡排序算法 冒泡排序的核心思想是“比较和交换”。算法重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行直到没有再需要交换的元素,这意味着该数列已经排序完成。这种方法是通过逐步将最大(或最小)的值移到适当的位置,而其他值则向数组的另一端移动。为了提高冒泡排序的效率,引入优化策略是必要的。 阅读详情

相关推荐

C#分等级学习

以图片的形式,讲述了C#的基础知识和学习中的注意事项,并讲述了如何去学习面向对象编写程序的方法。

C#编写的 8种初级+高级排序方法(转)

摘自:http://blog.youkuaiyun.com/mevin/article/details/6714520 程序代码: view plaincopy to clipboard using System; using System.Collections.Generic; using System.Linq; using System.Text; namespac...

weixin_34400525的博客 127

静态随机存储器(SRAM)

静态随机存储器(SRAM)是一种广泛用于计算机系统和嵌入式设备中的高速随机访问存储器。与动态随机存储器(DRAM)不同,SRAM 不需要定期刷新,因此可以实现更快的访问时间和更低的功耗。SRAM通常用于缓存、高速缓冲器和存储器应用程序中,其中性能和可靠性至关重要。

JAZJD的博客 8148

C# 十大排序算法

这些排序算法具有不同的时间复杂度、空间复杂度和稳定性,适用于不同的排序场景。每种算法都有其独特的思想和实现方式,您可以根据具体的需求选择适合的排序算法。以上代码分别实现了10大算法。请注意,如果需要对其他类型的数据进行排序,需要进行相应的修改。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 2万+

多臂老虎机——入门强化学习

多臂老虎机(Multi-Armed Bandit,MAB)问题是强化学习的经典入门例子,也是理解探索与利用(exploration-exploitation)平衡的重要案例。

qq_56683019的博客 2460

Dia 使用说明

简述 在linux上面能找到dia这个工具还是挺幸运的,因为之前画流程图总是使用ubuntu默认的word工具 在里面画图,感觉流程图使用起来麻烦,并且视觉效果真的不好看。 自从使用Dia后,感觉至少画起来流程图会变得越来越标准了。但是Dia也存在问题,就是使用的文档很少,使用中遇到为后,查起来比较费劲,但是至少问题不是很多,所以使用中遇到的几点问题我就记下来,和大家分享,加快大家的开发和文档整理能力。 我会按照遇到的问题来说,不存在使用的先后顺序。 1. Dia 去掉背景中的线条 首先去点那个大一点的蓝色

linan101的博客 4926

分治法查找最大和次大元素

问题描述:对于给定的含有n个元素的无序序列,求这个序列中最大和次大的两个不同元素。 问题求解:对于无序序列a[low..high],采用分治法求最大元素max1和次大元素max2的过程如下: (1)若a[low..high]中只有一个元素,则max1=a[low],max2=-INF(负无穷) (2)若a[low..high]中只有两个元素,则max1=max{a[low],a[high]},max2=min{a[low],a[h...

慢慢的博客 6510

【5G演进】4G到5G演进之网络架构与协议栈

4G到5G演进之网络架构与协议栈

Learning makes me happy (0^◇^0) 5532

编程区分语言(高级-中级-低级)

编程语言 低级语言 ---------------机器语言:0和1 ---------------汇编语言:和机器语言一 一对应,与硬件相关的特有代码,驱动程序开发 中级语言:C ---------------系统级应用,驱动程序 **高级语言:**java,python,go,php,Objective-C,C# ---------------应用程序开发 ...

LuiChun 4237

Qt垂直滚动条QVerticalScrollBar详解:从基础到实战的控件开发指南

本文系统解析Qt中QVerticalScrollBar的用法,从基础概念到进阶技巧。主要内容包括:1)基础认知:介绍其继承关系、作用及典型应用场景;2)核心用法:创建方法、关键属性配置和信号槽连接;3)进阶技巧:自定义样式表美化外观,以及与自定义内容区域的联动实现;4)实战注意事项,如避免循环触发和高DPI适配等。文章强调掌握QVerticalScrollBar对提升Qt滚动类功能开发效率的重要性,并建议通过自定义文本编辑器实践巩固知识点。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 759

使用lightGBM进行数据建模及预测

在机器学习领域中,数据建模和预测一直是非常重要的任务。而lightGBM作为一种基于梯度提升算法的高效机器学习框架,被广泛应用于数据建模和预测中。本文将介绍如何使用lightGBM进行数据建模和预测。到此,我们已经成功使用lightGBM对数据进行了建模和预测。使用lightGBM可以快速、高效地完成数据建模和预测任务,是机器学习领域中不可或缺的工具之一。使用lightGBM进行数据建模及预测。

qq_37934722的博客 1016

C#排序算法汇总(基础和高级)

排序是日常生活中非常普遍的问题,我们每个人都有自己固定的思维模式,而往往这些固定的思维模式都是效率非常低算法,比如选择排序,插入排序和冒泡排序,使我们很容易想到的排序方法(其实我觉得冒泡可能都不会想到) 所以学习别人的高级算法非常有必要,然而真正理解并不是看的懂就行了,也不是写一次代码跑成功就行了,我们需要熟练了知道它算法具体实现的程序中,每一步是在做什么,然后这个算法的时间复杂度、空间复杂度是...

xy_learning的博客 1042

第14.11章 高翔博士最新开源框架Lightning-LM源码解读(十一):离线定位模块全解析,从激光匹配到位姿图优化的极致优化

本文介绍了Lightning-LM离线定位模块的技术架构与实现细节。该模块基于3D激光雷达与IMU融合,采用改进版NDT匹配算法实现高精度定位,具备动态图层更新、多源信息融合等特性。核心流程包括数据预处理、激光里程计处理、IMU预测与点云去畸变、位姿图优化等环节,通过轻量级miao库实现高效增量优化。文章详细解析了模块的代码结构、关键函数功能及数据流,为SLAM系统的开发与优化提供了实践参考。

行知SLAM 376

C#常用的排序方法

快速排序由于排序效率综合来说你几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用.快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数...

路漫漫其修远兮 1万+

【STK】手把手教你利用STK进行进行光电红外仿真02-STK/EOIR模块属性之一 传感器选项设置

EOIR传感器可以从空间几何属性、光谱属性、光学属性、辐射属性四个方面进行设置,并且可以设置信号传播路径中的大气特性,包括大气模型、气溶胶模型、气象学可见性和大气湿度。在定义EOIR传感器时,需要Sensor——Definition属性页中,将Sensor Type设置为EOIR。单击下面的按钮打开传感器的EOIR配置页,可以对传感器的属性进行配置,此外,还可以在场景中视情况添加相关的中心体。路径辐射损耗影响上述特性的计算,计算的结果考虑了传感器、目标位置的影响,但是还没考虑地球临边背景的影响。

weixin_44184852的博客 3201

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# 冒泡排序

C# 冒泡排序 冒泡排序原理(以数组从小到大排列为例,假设数组从左到右排列): 在数组最左侧开始,两个相邻的数两两对比,如果靠左的数值大于靠右的数值,则两个数交换位置,否则不变位置; 之后整体右移一位,再次与相邻的数相比;最终将数组中最大的数值移到最右侧,这个过程为第一趟排序,需要经过n-1次比较; 之后开始第二趟循环,将数组中第二大的数值移到最大数的前一位,依此类推。 图文讲解冒泡排序(从小到大排序) 第一趟 共进行n-1次比较; 例如数组{4,8,7,5,2,3,6,1};共8个数,需要比较7次; 第一

weixin_46879188的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C#中List的3种排序方法

三种方式各有用处,根据你的项目情况来选择,比较单一普通的推荐用第一个,第二种和第三种方法比较复杂的list使用。List是C#常用的数组,它较之前的ArryList更加灵活,解决了Arrylist会出现装箱和拆箱的不安全问题,它是一种动态数组,可以存储对象或元素的集合。在处理比多的数据时,对list排序也非常重要,这样可以对数据更加容易的处理。OrderBy方法可以安装list中的指定元素升序排序,而ThenBy方可以附件排序按升序排序。这是C#最常用的排序方法,此方法可以让list按升序的方式排列。

风清扬的专栏 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

计算机控制技术及应用

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

C#数组排序方法

在C#中常用的数组排序的方法有:选择排序法、冒泡排序法、插入排序法和希尔排序法等。 一、选择排序法using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Test{ class Program { static void M...

adiking520110的博客 272

【转载】 C#中List集合使用OrderByDescending方法对集合进行倒序排序

在C#的List集合操作中,有时候需要针对List集合进行排序操作,如果是对List集合按照元素对象或者元素对象的某个属性进行倒序排序的话,可以使用OrderByDescending方法来实现,OrderByDescending方法属于List集合的扩展方法,方法的调用形式为使用Lambda表达式语句。 (1)对List集合对象list1进行从大到小降序排序可使用下列语句: List list1 ...

weixin_39650424的博客 6844

C# 中的数组排序

对于自定义类型的数组,要实现排序,需要让自定义类型实现接口或者提供一个实现了IComparer接口的比较器。以下是一个示例,假设有一个Student类:set;set;set;// 实现 IComparable 接口的 CompareTo 方法return 1;// 这里按照年龄进行比较,你可以根据需求修改比较的属性然后可以使用方法对Studentnew Student { Name = "张三", Age = 20, Score = 80 },

zxz2910847200的博客 1587

C#对象数组排序方法

#实现数组的排序一个排序的类,用了几种方式实现的。1using System;23namespace DataStruct4{5 public class Sorter6 {7 /**//// 8 /// 冒泡排序法19 /// 10 /// 11 public static void BubbleSort(int[] list)12 {13 for (int i = 0; i 14 {1

盘正玉博客 3436

《C#排序全解析:内置方法详解与手写冒泡排序实战》

“C#排序”、“冒泡排序”、“方法解析”

Rocn666的博客 612

C# 数组遍历排序之冒泡排序

C# 冒泡排序 冒泡排序原理(以数组从小到大排列为例,假设数组从左到右排列): 在数组最左侧开始,两个相邻的数两两对比,如果靠左的数值大于靠右的数值,则两个数交换位置,否则不变位置; 之后整体右移一位,再次与相邻的数相比;最终将数组中最大的数值移到最右侧,这个过程为第一趟排序,需要经过n-1次比较; 之后开始第二趟循环,将数组中第二大的数值移到最大数的前一位,依此类推。 图文讲解冒泡排序(从小到大排序) 第一趟 共进行n-1次比较; 例如数组{4,8,7,5,2,3,6,1};共8个数,需要比较7次;

Studing的博客 2148

8种排序算法的C#实现

排序是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。排序根据涉及的存储器的不同分为内部排序和外部排序:内部排序是指待排序记录存放在内存进行的排序过程;外部排序是指待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。本文仅讨论内部排序。 1.直接插入排序 最简单的排序方法,基本操作是将一个记录插入到已排好序的有序表中,从...

251
上一篇: 通过SoapHeader来增强Web Service的安全性
下一篇: ASP.NET缓存数据添加方法一览
Mevin
博客等级 码龄18年 27粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值