C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
冒泡排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using
System;
namespace
BubbleSorter
{
public
class
BubbleSorter
{
public
void
Sort(
int
[] list)
{
int
i,j,temp;
bool
done=
false
;
j=1;
while
((j<list.Length)&&(!done))
{ done=
true
;
for
(i=0;i<list.Length-j;i++)
{
if
(list[i]>list[i+1])
{
done=
false
;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
} }
j++; }
} }
public
class
MainClass
{
public
static
void
Main()
{
int
[] iArrary=
new
int
[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
BubbleSorter sh=
new
BubbleSorter();
sh.Sort(iArrary);
for
(
int
m=0;m<iArrary.Length;m++)
Console.Write(
"{0} "
,iArrary[m]);
Console.WriteLine();
} }
}
|
选择排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
using
System;
namespace
SelectionSorter
{
public
class
SelectionSorter
{
private
int
min;
public
void
Sort(
int
[] list)
{
for
(
int
i=0;i<list.Length-1;i++)
{ min=i;
for
(
int
j=i+1;j<list.Length;j++)
{
if
(list[j]<list[min])
min=j;
}
int
t=list[min];
list[min]=list[i];
list[i]=t;
} }
}
|
插入排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
using
System;
namespace
InsertionSorter
{
public
class
InsertionSorter
{
public
void
Sort(
int
[] list)
{
for
(
int
i=1;i<list.Length;i++)
{
int
t=list[i];
int
j=i;
while
((j>0)&&(list[j-1]>t))
{ list[j]=list[j-1];
--j;
}
list[j]=t; }
}
}
public
class
MainClass
{
public
static
void
Main()
{
int
[] iArrary=
new
int
[]{1,13,3,6,10,55,98,2,87,12,34,75,33,47};
InsertionSorter ii=
new
InsertionSorter();
ii.Sort(iArrary);
for
(
int
m=0;m<iArrary.Length;m++)
Console.Write(
"{0}"
,iArrary[m]);
Console.WriteLine();
} }
}
public
class
MainClass
{
public
static
void
Main()
{
int
[] iArrary=
new
int
[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
SelectionSorter ss=
new
SelectionSorter();
ss.Sort(iArrary);
for
(
int
m=0;m<iArrary.Length;m++)
Console.Write(
"{0} "
,iArrary[m]);
Console.WriteLine();
} }
}
|
希尔排序
希尔排序是将组分段,进行插入排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using
System;
namespace
ShellSorter
{
public
class
ShellSorter
{
public
void
Sort(
int
[] list)
{
int
inc;
for
(inc=1;inc<=list.Length/9;inc=3*inc+1);
for
(;inc>0;inc/=3)
{
for
(
int
i=inc+1;i<=list.Length;i+=inc)
{
int
t=list[i-1];
int
j=i;
while
((j>inc)&&(list[j-inc-1]>t))
{
list[j-1]=list[j-inc-1];
j-=inc;
}
list[j-1]=t;
} }
} }
public
class
MainClass
{
public
static
void
Main()
{
int
[] iArrary=
new
int
[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
ShellSorter sh=
new
ShellSorter();
sh.Sort(iArrary);
for
(
int
m=0;m<iArrary.Length;m++)
Console.Write(
"{0} "
,iArrary[m]);
Console.WriteLine();
} }
}
|
转载优特建站:http://www.youtiy.com/Articles/Item.aspx?Id=239