zoukankan
html css js c++ java
经典算法C#四种排序算法
【导读】本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
冒泡排序
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();
}
}
}
选择排序
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;
}
}
}
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();
}
}
}
插入排序
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();
}
}
}
希尔排序
希尔排序是将组分段,进行插入排序.
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.uml.org.cn/net/200603242.htm
查看全文
相关阅读:
vs 2015 "加载该页时出错。" 解决方案
Web API使用HttpResponseMessage与HttpResponseException的差异 HttpResponseMessage 返回类型
a标签使用href=”javascript:void(0); 在火狐浏览器跟chrome 不兼容
SQL语句 转
Fiddler抓包 截包伪造提交包
图片懒加载
dropzone 上传插件
MVC5+EF6 完整教程 转
用Aspose.Cell控件导入Excel非强类型的数据
利用Aspose.Word控件实现Word文档的操作
原文地址:https://www.cnblogs.com/sxlfybb/p/615421.html
最新文章
一文带你了解JavaScript函数式编程
SQL Server数据库备份恢复(Simple Recovery Model和Full Recovery Model)(链接)
SQL Server中使用COLLATE关键字,解决排序规则不同的问题
Shrinking a SQL Server database not working(转载)
SQL Server数据库损坏,会导致收缩数据库不起作用
SQL Server中Reorganize和Rebuild索引的区别(链接)
SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据
DateTimeOffset的构造函数抛出异常:UTC offset of local dateTime does not match the offset argument(转载)
C#中,接口转换实验
在SQL Server的子查询、视图、内联函数等数据库对象中,不应该单独使用ORDER BY语句
热门文章
EF Core中如何使用LEFT JOIN
儿童节,我们从零开始——Python入门资源推荐
kali linux 2.0 web 渗透测试 电子书
Python爬虫之urllib模块2
Python爬虫之urllib模块1
python无线网络安全入门案例
Python 黑帽编程 4.2 Sniffer之数据本地存储和加载
老司机教你下载tumblr上视频和图片的正确姿势
PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获--补充
PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获(下)
Copyright © 2011-2022 走看看