C#中四种排序算法
一、冒泡排序(Bubble)
二、选择排序(Selection)
三、插入排序(InsertionSorter)
四、希尔排序(ShellSorter)
1
using System;
2![](/Images/OutliningIndicators/None.gif)
3
namespace BubbleSorter
4
{
5
public class BubbleSorter
6
{
7
public void Sort(int[] list)
8
{
9
int i,j,temp;
10
bool d;
11
j=1;
12
while((j<list.Length)&&(!done))
13
{
14
d;
15
for(i=0;i<list.Length-j;i++)
16
{
17
if(list[i]>list[i+1])
18
{
19
d;
20
temp=list[i];
21
list[i]=list[i+1];
22
list[i+1]=temp;
23
}
24
}
25
j++;
26
}
27
}
28
}
29![](/Images/OutliningIndicators/InBlock.gif)
30
public class MainClass
31
{
32
public static void Main()
33
{
34
int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
35
BubbleSorter sh=new BubbleSorter();
36
sh.Sort(iArrary);
37
for(int m=0;m<iArrary.Length;m++)
38
Console.Write("{0} ",iArrary[m]);
39
Console.WriteLine();
40
}
41
}
42
}
43![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
41
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
42
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
43
![](/Images/OutliningIndicators/None.gif)
1
using System;
2![](/Images/OutliningIndicators/None.gif)
3
namespace SelectionSorter
4
{
5
public class SelectionSorter
6
{
7
private int min;
8
public void Sort(int [] list)
9
{
10
for(int i=0;i<list.Length-1;i++)
11
{
12
min=i;
13
for(int j=i+1;j<list.Length;j++)
14
{
15
if(list[j]<list[min])
16
min=j;
17
}
18
int t=list[min];
19
list[min]=list[i];
20
list[i]=t;
21
}
22
}
23
}
24![](/Images/OutliningIndicators/InBlock.gif)
25
public class MainClass
26
{
27
public static void Main()
28
{
29
int[] iArrary = new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
30
SelectionSorter ss=new SelectionSorter();
31
ss.Sort(iArrary);
32
for (int m=0;m<iArrary.Length;m++)
33
Console.Write("{0} ",iArrary[m]);
34
Console.WriteLine();
35
}
36
}
37
}
38![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
37
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
38
![](/Images/OutliningIndicators/None.gif)
1
using System;
2![](/Images/OutliningIndicators/None.gif)
3
namespace InsertionSorter
4
{
5
public class InsertionSorter
6
{
7
public void Sort(int [] list)
8
{
9
for(int i=1;i<list.Length;i++)
10
{
11
int t=list[i];
12
int j=i;
13
while((j>0)&&(list[j-1]>t))
14
{
15
list[j]=list[j-1];
16
--j;
17
}
18
list[j]=t;
19
}
20
}
21
}
22![](/Images/OutliningIndicators/InBlock.gif)
23
public class MainClass
24
{
25
public static void Main()
26
{
27
int[] iArrary=new int[]{1,13,3,6,10,55,98,2,87,12,34,75,33,47};
28
InsertionSorter ii=new InsertionSorter();
29
ii.Sort(iArrary);
30
for(int m=0;m<iArrary.Length;m++)
31
Console.Write("{0}",iArrary[m]);
32
Console.WriteLine();
33
}
34
}
35
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
27
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
35
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
1 using System;
2
3 namespace ShellSorter
4 {
5 public class ShellSorter
6 {
7 public void Sort(int [] list)
8 {
9 int inc;
10 for(inc=1;inc<=list.Length/9;inc=3*inc+1);
11 for(;inc>0;inc/=3)
12 {
13 for(int i=inc+1;i<=list.Length;i+=inc)
14 {
15 int t=list[i-1];
16 int j=i;
17 while((j>inc)&&(list[j-inc-1]>t))
18 {
19 list[j-1]=list[j-inc-1];
20 j-=inc;
21 }
22 list[j-1]=t;
23 }
24 }
25 }
26 }
27
28 public class MainClass
29 {
30 public static void Main()
31 {
32 int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
33 ShellSorter sh=new ShellSorter();
34 sh.Sort(iArrary);
35 for(int m=0;m<iArrary.Length;m++)
36 Console.Write("{0} ",iArrary[m]);
37 Console.WriteLine();
38 }
39 }
40 }
41
2
3 namespace ShellSorter
4 {
5 public class ShellSorter
6 {
7 public void Sort(int [] list)
8 {
9 int inc;
10 for(inc=1;inc<=list.Length/9;inc=3*inc+1);
11 for(;inc>0;inc/=3)
12 {
13 for(int i=inc+1;i<=list.Length;i+=inc)
14 {
15 int t=list[i-1];
16 int j=i;
17 while((j>inc)&&(list[j-inc-1]>t))
18 {
19 list[j-1]=list[j-inc-1];
20 j-=inc;
21 }
22 list[j-1]=t;
23 }
24 }
25 }
26 }
27
28 public class MainClass
29 {
30 public static void Main()
31 {
32 int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
33 ShellSorter sh=new ShellSorter();
34 sh.Sort(iArrary);
35 for(int m=0;m<iArrary.Length;m++)
36 Console.Write("{0} ",iArrary[m]);
37 Console.WriteLine();
38 }
39 }
40 }
41