Chinaunix首页
|
论坛
|
博客
博文
博主
LVah的ChinaUnix博客
4月28日14:30-20:30机房服务器迁移,暂停博客使用
9/30日 14:00 -10/4日 08:00暂时无法发布内容!
9/30日 14:00 -10/4日 08:00暂时无法发布内容!
首页
|
博文目录
|
关于我
LVah
博客访问: 8874
博文数量: 2
博客积分: 0
博客等级: 民兵
技术积分: 30
用 户 组: 普通用户
注册时间: 2015-05-10 22:07
文章分类
全部博文
(2)
C语言
(2)
未分配的博文
(0)
文章存档
2015年
(2)
2015年09月
(2)
我的朋友
最近访客
推荐博文
·
shell脚本的调试(trap、tee、...
·
一体机场景ceph高可用介绍...
·
ORACLE SQL overlap时间段重...
·
Rust入门到精通(三)—— 不...
·
Oracle 1582-10-07问题
相关博文
·
《DNK210使用指南 -SDK版 V1....
·
《DNK210使用指南 -SDK版 V1....
·
《DNK210使用指南 -SDK版 V1....
·
区块链嵌入式内核开发:攻坚...
·
工程车辆控制器SPQ-RPC-A00,...
·
Git 高效协作最佳实践...
·
《DNK210使用指南 -CanMV版 V...
·
《DNK210使用指南 -CanMV版 V...
·
《DNK210使用指南 -CanMV版 V...
·
《DNK210使用指南 -CanMV版 V...
冒泡排序的三种方法
分类:
C/C++
2015-09-05 09:24:19
//冒泡排序的三种实现方法
(
以从小到大排序为例
)
//设数组长度为N
//1、compare相邻的前后两个数据,若prev_data
>
next_data
,
则swap
;
//2、对0~
(
N
-
1
)
个数据进行一次遍历,max_data
"沉"
到N
-
1个位置;
//3、N
=
N
-
1
,
if
(
n
!
=
0
)
,
重复2,else
(
sort is completed
)
.
//冒泡排序1
void BubbleSort1
(
int
a
[
]
,
int
n
)
{
int
i
,
j
;
for
(
i
=
0
;
i
<
n
;
i
+
+
)
{
//外循环控制循环趟数
for
(
j
=
0
;
j
<
n
-
i
;
j
+
+
)
{
//内循环控制选择要进行比较的数
if
(
a
[
j
-
1
]
>
a
[
j
]
)
{
Swap
(
a
[
j
-
1
]
,
a
[
j
]
)
;
}
}
}
}
//冒泡排序2
//设置一个标志flag,if swap,then flag
=
ture;else flag
=
false,no swap,so sort is completed
.
void BubbleSort2
(
int
a
[
]
,
int
n
)
{
int
i
;
bool flag
;
flag
=
ture
;
while
(
flag
)
{
flag
=
false
;
for
(
i
=
1
;
i
<
n
;
i
+
+
)
{
if
(
a
[
i
-
1
]
>
a
[
i
]
)
{
Swap
(
a
[
i
-
1
]
,
a
[
i
]
)
;
flag
=
ture
;
}
n
-
-
;
}
}
}
//冒泡排序3
void BubbleSort3
(
int
a
[
]
;
int
n
)
{
int
i
,
j
;
int
flag
;
flag
=
n
;
while
(
flag
>
0
)
{
j
=
flag
;
flag
=
0
;
for
(
i
=
1
;
i
<
n
;
i
+
+
)
{
if
(
a
[
i
-
1
]
>
a
[
i
]
)
{
Swap
(
a
[
i
-
1
]
,
a
[
i
]
)
;
flag
=
i
;
}
}
}
}
阅读(1198) | 评论(0) | 转发(0) |
0
上一篇:
队列的操作集锦
下一篇:没有了
给主人留下些什么吧!~~
评论热议
请登录后评论。
登录
注册