C#几种常用的排序算法:
1 冒泡排序法
1
冒泡排序法#region冒泡排序法
2
publicvoidSort(int[]list)
3

{
4
longbegintime=System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;
5
WriteLine(begintime);
6
intj,temp;
7
j=1;
8
while((j<list.Length))
9

{
10
for(inti=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
longendtime=System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;
22
WriteLine(endtime);
23
WriteLine(endtime-begintime);
24
}
25
#endregion

冒泡排序法#region冒泡排序法2
publicvoidSort(int[]list)3


{4
longbegintime=System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;5
WriteLine(begintime);6
intj,temp;7
j=1;8
while((j<list.Length))9


{10
for(inti=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
longendtime=System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;22
WriteLine(endtime);23
WriteLine(endtime-begintime);24
}25
#endregion
2 选择排序法
1
选择排序法#region选择排序法
2
publicvoidSortChoice(int[]list)
3

{
4
longbegintime=System.DateTime.Now.Millisecond;
5
intmin;
6
for(inti=0;i<list.Length-1;i++)
7

{
8
min=i;
9
for(intj=i+1;j<list.Length;j++)
10

{
11
if(list[j]<list[min])
12
min=j;
13
}
14
intt=list[min];
15
list[min]=list[i];
16
list[i]=t;
17
}
18
longendtime=System.DateTime.Now.Millisecond;
19
WriteLine(begintime);
20
WriteLine(endtime);
21
WriteLine(endtime-begintime);
22
}
23
#endregion

选择排序法#region选择排序法2
publicvoidSortChoice(int[]list)3


{4
longbegintime=System.DateTime.Now.Millisecond;5
intmin;6
for(inti=0;i<list.Length-1;i++)7


{8
min=i;9
for(intj=i+1;j<list.Length;j++)10


{11
if(list[j]<list[min])12
min=j;13
}14
intt=list[min];15
list[min]=list[i];16
list[i]=t;17
}18
longendtime=System.DateTime.Now.Millisecond;19
WriteLine(begintime);20
WriteLine(endtime);21
WriteLine(endtime-begintime);22
}23
#endregion
3 插入排序法
1
插入排序法#region插入排序法
2
publicvoidSortInsert(int[]list)
3

{
4
for(inti=1;i<list.Length;i++)
5

{
6
intt=list[i];
7
intj=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

插入排序法#region插入排序法2
publicvoidSortInsert(int[]list)3


{4
for(inti=1;i<list.Length;i++)5


{6
intt=list[i];7
intj=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
publicvoidSortShell(int[]list)
3

{
4
intinc;
5
for(inc=1;inc<=list.Length/9;inc=3*inc+1);
6
for(;inc>0;inc/=3)
7

{
8
for(inti=inc+1;i<=list.Length;i+=inc)
9

{
10
intt=list[i-1];
11
intj=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

希尔排序法#region希尔排序法2
publicvoidSortShell(int[]list)3


{4
intinc;5
for(inc=1;inc<=list.Length/9;inc=3*inc+1);6
for(;inc>0;inc/=3)7


{8
for(inti=inc+1;i<=list.Length;i+=inc)9


{10
intt=list[i-1];11
intj=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
5116

被折叠的 条评论
为什么被折叠?



