关闭

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

发表于:2010-7-13 11:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
DotNet

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

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

  1:插入排序 a.直接插入排序  b.希尔排序
  2:交换排序 a.冒泡排序      b.快速排序
  3:选择排序 a.直接选择排序
  4:归并排序 a.归并排序
  5:分配排序 a.箱排序        b.基数排序

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

  第一种:冒泡排序

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

public class EbullitionSorter
{
  public void Sort(int[] arr)
  {
    for(int i=arr.length-1;i>0;i--)
    {
      for(int j=0;j
      {
        if(arr[i]
        {
          int temp=arr[i];
          arr[i]=arr[j];
          arr[j]=temp;
        }
      }
    }
  }
}

  第二种:选择排序

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

public class SelectionSorter
{
private int min;
  public void Sort(int[] arr)
  {
    for(int i=0;i
    {
    min=i;
      for(int j=i+1;j
      {
      if(arr[j]
        {
        min=j;
        }
      }
      int temp=arr[min];
      arr[min]=arr[i];
      arr[i]=temp;
    }
  }
}

  第三种:插入排序

  原理:对一个数列,我们从第二个数开始,将它与它前面的数字进行比较,每次选出最大或最小的数放在队首,因而形成一个有序的队列,所以它比选择排序更快。

public class InsertionSorter
{
  public void Sort(int[] arr)
  {
    for(int i=1;i
    {
    int temp=arr[i];
    int j=i;
      while((j>0)&&(arr(j-1)>temp))
      {
      arr[j]=arr[j-1];
      --j;
      }
    arr[j]=temp;
    }
  }
}

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

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号