您的位置:首页 > 编程语言 > C#

C#几种常用的排序算法:

2008-12-09 10:08 323 查看
C#几种常用的排序算法:
1 冒泡排序法
 1

#region 冒泡排序法
 2

public void Sort(int[] list)
 3

{
 4

    long begintime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;
 5

    WriteLine(begintime);
 6

    int j,temp;
 7

    j= 1;
 8

    while((j<list.Length))
 9

    {
10

        for(int i=0;i<list.Length -j;i++)
11

        {
12

            if(list[i]<list[i+1])
13

            {
14

                temp = list[i];
15

                list[i] = list[i+1];
16

                list[i+1] = temp;
17

            }
18

        }
19

        j++;
20

    }
21

    long endtime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;
22

    WriteLine(endtime);
23

    WriteLine(endtime-begintime);
24

}
25

#endregion2 选择排序法
 1

#region 选择排序法
 2

public void SortChoice(int [] list)
 3

{
 4

    long begintime = System.DateTime.Now.Millisecond;
 5

    int min;
 6

    for(int i=0;i<list.Length-1;i++)
 7

    {
 8

        min=i;
 9

        for(int j=i+1;j<list.Length;j++)
10

        {
11

            if(list[j]<list[min])
12

                min=j;
13

        }
14

        int t=list[min];
15

        list[min]=list[i];
16

        list[i]=t;
17

    }
18

    long endtime = System.DateTime.Now.Millisecond;
19

    WriteLine(begintime);
20

    WriteLine(endtime);
21

    WriteLine(endtime-begintime);
22

}
23

#endregion3 插入排序法
 1

#region 插入排序法
 2

public void SortInsert(int [] list)
 3

{
 4

    for(int i=1;i<list.Length;i++)
 5

    {
 6

        int t=list[i];
 7

        int j=i;
 8

        while((j>0)&&(list[j-1]<t))
 9

        {
10

            list[j]=list[j-1];
11

            --j;
12

        }
13

        list[j]=t;
14

    }
15

}
16

#endregion4 希尔排序法
 1

#region 希尔排序法
 2

public void SortShell(int [] list)
 3

{
 4

    int inc;
 5

    for(inc=1;inc<=list.Length/9;inc=3*inc+1);
 6

    for(;inc>0;inc/=3)
 7

    {
 8

        for(int i=inc+1;i<=list.Length;i+=inc)
 9

        {
10

            int t=list[i-1];
11

            int j=i;
12

            while((j>inc)&&(list[j-inc-1]>t))
13

            {
14

                list[j-1]=list[j-inc-1];
15

                j-=inc;
16

            }
17

            list[j-1]=t;
18

        }
19

    }
20

}
21

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: