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

开发 后端
这里将对几种常用的C#排序方法进行介绍,一般来说网上都是五种常用的排序方法,希望本文能对大家有所帮助。

这五种C#排序方法,其实在其他语言平台中也是常见的,因此C#排序方法也可以说是其他语言的排序方法,只不过实现的语言不同罢了。

在网上看到很多经典排序方法,算法分:

1:插入排序 a.直接插入排序  b.希尔排序

2:交换排序 a.冒泡排序      b.快速排序

3:选择排序 a.直接选择排序

4:归并排序 a.归并排序

5:分配排序 a.箱排序        b.基数排序

本人常用的三种C#排序方法:1.直接选择排序 2.直接插入排序 3.冒泡排序;我用C#语言来讲解一下。

***种:冒泡排序

原理:对一个数列,我们将它进行轮循和交换,每次轮循出***数或最小数放在对尾,依次进行循环,轮循长度为-1。

  1. public class EbullitionSorter  
  2. {  
  3.  public void Sort(int[] arr)  
  4.  {  
  5.   for(int i=arr.length-1;i>0;i--)  
  6.   {  
  7.    for(int j=0;j   {  
  8.     if(arr[i]    {  
  9.      int temp=arr[i];  
  10.      arr[i]=arr[j];  
  11.      arr[j]=temp;  
  12.     }  
  13.    }  
  14.   }  
  15.  }  

第二种:选择排序

原理:对一个数列,我们选出***或最小的数,放在队尾,依次循环下去,循环长度为-1;由于没有冒泡排序那每次都要比较,因此比冒泡排序要快。

  1. public class SelectionSorter  
  2. {  
  3.  private int min;  
  4.  public void Sort(int[] arr)  
  5.  {  
  6.   for(int i=0;i  {  
  7.    min=i;  
  8.    for(int j=i+1;j   {  
  9.     if(arr[j]    {  
  10.      min=j;  
  11.     }  
  12.    }  
  13.    int temp=arr[min];  
  14.    arr[min]=arr[i];    
  15.    arr[i]=temp;  
  16.   }  
  17.  }  

第三种:插入排序

原理:对一个数列,我们从第二个数开始,将它与它前面的数字进行比较,每次选出***

或最小的数放在队首,因而形成一个有序的队列,所以它比选择排序更快。

  1. public class InsertionSorter  
  2. {  
  3.  public void Sort(int[] arr)  
  4.  {  
  5.   for(int i=1;i  {  
  6.    int temp=arr[i];   
  7.    int j=i;  
  8.    while((j>0)&&(arr(j-1)>temp))  
  9.    {  
  10.     arr[j]=arr[j-1];  
  11.     --j;  
  12.    }  
  13.    arr[j]=temp;  
  14.   }  
  15.  }  

以上的三种方法是我自己常用的,很简单,程序也很容易懂的,对初学者很有帮助。

很多人学过面向对象思想,下次就写下怎么对对象排序。

以上有错的地方请谅解!!

【编辑推荐】

  1. LINQ to SQL删除实现体会小结
  2. LINQ删除记录的操作实现
  3. 实现LINQ删除数据的巧妙方法
  4. 详解实现LINQ to SQL删除行
  5. C# Lambda Expression概念浅析
责任编辑:彭凡 来源: CSDN
相关推荐

2009-08-06 17:24:08

C#字符串

2009-08-25 17:07:27

C#虚拟方法

2009-07-30 15:57:30

C#时间

2009-08-31 09:19:31

c#隐藏窗口

2009-09-17 18:07:22

C#动态数组

2009-09-09 13:31:15

C# TextBox

2012-10-31 17:37:48

2009-08-17 17:56:32

C# 枚举

2009-08-26 18:14:11

C#排序算法

2013-02-22 09:54:15

C#Excel读取Excel

2009-09-02 17:10:45

C#语言入门

2009-09-01 18:35:53

C#判断文件存在

2009-07-30 16:40:03

C#日期格式化

2009-09-24 14:59:38

C#编写COM组件

2009-08-18 11:23:11

2009-09-01 18:16:41

C#窗体间通讯

2009-08-03 11:37:36

C#日期时间控件

2009-08-27 18:04:01

c#扩展方法string

2009-09-17 16:45:56

C#数组

2009-08-19 14:35:12

C++和C#相互调用C
点赞
收藏

51CTO技术栈公众号