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

C#几种常用的排序算法

2008-03-22 21:12 435 查看
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

#endregion

2 选择排序法

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

#endregion

3 插入排序法

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

#endregion

4 希尔排序法

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