好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

数据结构之排序算法C#实现

数据结构之排序算法C#实现

快找工作了,要整整算法之类的东西了,先把内功练好了才会有更好的发展,从今天起开始写些数据结构的东西。

东西可能会比较简单,作为入门,大家可以也学习学习。并提出些修改意见。

排序算法之一:冒泡排序(Bubble Sort)

冒泡排序算法是可用的最慢的排序算法之一,但是是最容易理解和实现的一种排序算法。这种排序的得名是由于数值"像气泡“一样升至队列的顶端或者底端而得名,

通过多次遍历整个列,并且比较相邻的数据,如果左边的数值大于右边的数值就进行交换(升序)。

实现代码如下:

Bubble Sort Code

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

排序算法之二:选择排序(Selection Sort)

以数组为例(当然其他的集合类型也是一样),这种排序是从数组的起始处开始,把第一个元素与数组中其他元素进行比较。然后将最小的元素放在第0个位置,接着再从第一个位置开始再次进行排序操作。直到数组的最后一个元素为止。

Selection Sort Code

排序算法之三:插入排序(Insertion Sort)

其基本操作为将一个记录插入到一个已经排序好的序列中,从而得到一个新的、记录数增1的新序列。

如下图所示插入排序的过程:(图片源自网络)

实现代码如下:

Insertion Sort Code

  public   static   void  InsertionSort( int  [] arr)
        {
              int   inner, temp;
              for  ( int  i =  1 ; i < arr.Length; i++ )
            {
                temp  =  arr[i];
                inner  =  i;
                  while  (inner >  0  && arr[inner -  1 ] >  temp)
                {
                    arr[inner]  = arr[inner -  1  ];
                    inner  -=  1  ;
                }
                arr[inner]  =  temp;
            }
        } 


总结:

选择排序是如上三种排序算法中效率最高的一种,其次是冒泡和插入。

如上三种排序算法对小型数据集合适用,若是大型数据集合,由于其性能瓶颈,最好选用其他高级排序算法。

数据结构

数据结构之排序算法--C#实现 (下)

摘要: 上一篇和大家一起学习了基本的排序算法,这一篇写一些高级的排序算法,1.希尔排序(Shell‘s Sort)又称“缩小增量排序”(Diminshing Increment Sort)是一种对插入排序的改进算法。基本思想为:设待排序记录序列有n个记录,首先取一个整数gap<n作为间隔,将全部记录分为gap个子序列,所有间隔为gap的记录放在同一子序列中,在每一子序列中分别执行直接插入排序。重复上述的子序列划分和排序工作,直到gap==1将所有记录放在同一个序列中排序为止。C#实现代码如下:Shell's Sort Code 1 public static void ShellSort 阅读全文

posted @  2012-04-25 17:33  勿惹尘埃 阅读(9) |  评论 (0)   编辑

数据结构之排序算法--C#实现 (上)

摘要: 快找工作了,要整整算法之类的东西了,先把内功练好了才会有更好的发展,从今天起开始写些数据结构的东西。东西可能会比较简单,作为入门,大家可以也学习学习。并提出些修改意见。排序算法之一:冒泡排序(Bubble Sort)冒泡排序算法是可用的最慢的排序算法之一,但是是最容易理解和实现的一种排序算法。这种排序的得名是由于数值"像气泡“一样升至队列的顶端或者底端而得名,通过多次遍历整个列,并且比较相邻的数据,如果左边的数值大于右边的数值就进行交换(升序)。实现代码如下:Bubble Sort Code 1 public static void BubbleSort(int[] arr) 2 . 阅读全文

posted @  2012-04-25 15:57  勿惹尘埃 阅读(473) |  评论 (0)   编辑

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于数据结构之排序算法C#实现的详细内容...

  阅读:30次