ITPub博客

首页 > Linux操作系统 > Linux操作系统 > c#排序算法

c#排序算法

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-03-11 17:09:28 0 删除 编辑

在学习新技术的同时,我们还应该时刻复习自己已学过的数据结构和经典算法。 

一、最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。时间复杂度 o(n^2);空间复杂度 o(1);比较次数 n(n+1)/2

代码:(vs2005中编译通过)
using System;
using System.Collections.Generic;
using System.Text;

namespace SortMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] iArray =new int[]{ 1, 13, 5,7 ,2 ,10 };           
            BubbleSorter bSort = new BubbleSorter();
            bSort.Sort(iArray);
            for (int k = 0; k < iArray.Length; k++)
            {
                Console.Write("{0}",iArray[k]);
                Console.WriteLine();
            }

        }

    }

    public class BubbleSorter
    {
        public void Sort(int[] sortList)
        {
            int i, j, temp;           
            for (j= 1; j< sortList.Length;j++ )
            {
                for (i = 0; i < listArray.Length - j; i++)
                {
                    if (sortList[i] > sortList[i + 1])
                    {
                        temp = sortList[i];
                        sortList[i] = sortList[i + 1];
                        sortList[i + 1] = temp;
                    }
                }               
            }
                   
        }
    }

}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-566854/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5322073